只有在WIN8上運行的基本VB6應用程序?像GDI +,Keyhooks,FileSystem或RtlMoveMemory Apis一樣,任何API的使用都不同。VB6 VisualBasic6 API在Windows 8上工作嗎?
VB6是x86,Win8是x64。
我已經閱讀: VB6 Running on Windows 8?
只有在WIN8上運行的基本VB6應用程序?像GDI +,Keyhooks,FileSystem或RtlMoveMemory Apis一樣,任何API的使用都不同。VB6 VisualBasic6 API在Windows 8上工作嗎?
VB6是x86,Win8是x64。
我已經閱讀: VB6 Running on Windows 8?
的Windows 8不會更改Windows桌面應用程序的基本的API。 (當然除了適用於Windows RT的)
未來版本的Windows也不會;對這些API的任何更改都會破壞與所有現有應用程序的兼容性。
保持舊的VB6程序運行肯定是越來越困難。 Windows 7 SP1部署了一個l ong overdue update to ADO,這將阻止舊的VB6 dbase應用程序無法工作。 MSCOMCTL.OCX this year有兩個重要的安全補丁,其中一個修改了guid。
雖然你可以保留舊機由剛剛跳過這些更新運行的舊VB6應用程序時,Windows 8將會有他們在的地方,你無法恢復。您必須在具有這些更新的計算機上重建您的應用程序,以便使用新的類型庫。如果這不是一個選項,那麼虛擬機就是保持它的方式。但是我沒有看到虛擬XP模式的支持。
Win8上的x86 ADO typelib是向後兼容的,因此它們基本上取消了/修正了使用Win7 SP1所做的更改。 Win7 SP2也可能會在Win7上恢復ADO typelib。 – wqw
和MSCOMCTL。OCX從未安裝過任何版本的Windows,因此沒有任何問題。如果您將自2008年以來嘗試和失敗的那些多次打破的「安全累積」嘗試之一安裝到您的開發計算機上,並且您正在從開發計算機部署OCX的實時副本,則只會遇到麻煩(a no-no)而不是來自Redist文件夾或標準合併模塊。 – Bob77
@Bob:Ahaaa,所以即使這些補丁MSCOMCTL.OCX在客戶端機器上也可以,如果VB6應用程序是針對開發機器上的「良好」版本編譯的, – wqw
我們剛開始在Windows 8的x64測試我們的VB6應用程序。該應用程序是巨大而複雜的。一般情況下,事情似乎可行,甚至是老式的第三方OCX控件等等。ADO/MDAC可以在各種版本的SQL Server中正常工作。有很多Win32 API調用似乎也能正常工作。我們還能夠在Windows 8 x64上安裝VB6 IDE進行測試和調試。
的第一個問題,雖然是一個通用的50003錯誤和消息說它無法創建主申請表或類似的東西。進一步調查顯示,Windows 8出於某種原因不喜歡嵌入在表單中的一些圖標(它們存儲在表單的附帶.frx文件中,並在編譯時嵌入到.exe中)。看起來它可能與具有透明背景的圖標有關。
該應用程序有約。 100個受影響的表單。一旦解決了這個問題,應用程序似乎可以正常工作。但是這一件事打破了我們在Windows 7上運行良好的分發可執行文件(以及Vista和XP以及所有服務器版本,以及在2000,Win98和Win95上運行的舊版本)。它可以很容易地修復,但我們希望不必做任何事情。嘆。
是否有人看到了這一點或者有什麼提示或建議,我會很感興趣。
P.S. @Hans Passant,Windows 7 SP1 ADO問題已通過KB2640696修復。
找出問題所在。一些表單嵌入了16位顏色深度圖標。改變他們有256色和RBG/A,它似乎修復它。希望我們不需要這樣做。 –
的Windows 8也可作爲86 – SLaks