大問題
在我工作的組織中,管理系統(由另一家公司創建的模組化應用程式)是在97/98 年在VB 上開發的,並且從未遷移到另一個更先進的開發平台,例如VB.NET 。此應用程式(32 位元)可以在 Windows 7(32 位元和 64 位元)上正常運作。
現在,出於明顯的安全原因,我們必須在Windows 10上安裝這個系統,這裡有幾個問題:
- 不相容Windows 7,主應用程式使用其他按鈕啟動子應用程序,就像它們是模組一樣。碰巧這些子應用程式中有幾個拋出異常運行時錯誤“53”:找不到文件沒有指定缺少哪個 dll。其他子應用程式打不開。當然,我們已經檢查過這些庫是否已在
regsvr32
. - 與Windows 7相容,運行時錯誤“53”似乎消失了,但隨後程式發出警告(例如,預料到的警告,因為它以非英語語言出現),注意到無法將一些必須處理的檔案複製到特殊資料夾
UserProfile
,作為細節添加“運行時錯誤‘52’:檔案名稱或編號錯誤”。
我嘗試了什麼?
我嘗試在 32 位元和 64 位元的 Windows 10 上執行該應用程式。在這兩個版本中,程式都失敗了,甚至在 32 位元版本中似乎運行得更差。
我還嘗試反彙編程式碼,設法發現錯誤來自解決與特殊資料夾(至少
ProgramFiles
和UserProfile
)相關的某些路線。我自己研究了一下,我懷疑這可能是由於某些原因shell 和架構問題,如該執行緒所示,由於應用程式使用外殼來解析特殊資料夾。但是,它可以正確解析這些資料夾的路徑。
我高度懷疑這與在更高的模式下運行應用程式有關,我嘗試在管理員模式下運行並獲取特殊資料夾的權限。但我認為我缺少一些配置。
我正在認真考慮在 Windows 10 中虛擬化 Windows 7,直到程式更新為止,正如這裡所建議的,但我想用它作為最後一顆子彈。
老實說,我被困住了。有任何想法嗎?
PD:請避免風格明顯的答案“您的組織應該為更好的軟體付費”;我是IT部門的,我們還沒有成功解綁這個醜陋的管理軟體的資料庫;更不用說我們要花多少錢才能說服我們的上級接受這項改變。
答案1
根據我的經驗,沒有任何特定的 Windows 10 問題本身會導致與 Windows 7 不同的問題。但我首先會尋找安裝或配置類型問題,而不是徹底的兼容性。
52/53 錯誤可能是 - 權限?驅動器映射?我建議運行您的應用程式過程監控器並看看您是否可以使用該工具檢測到它丟失/未找到的內容。
答案2
- 以管理員身份執行。
- 將其安裝在您建立的資料夾中。
- 擁有他所有子資料夾的所有權。
許多 VB6 應用程式甚至無法存取 Windows 10 上自己的資料夾。
嘗試 MS 應用程式相容性工具包