2012-11-23 66 views

回答

6

的Windows 8不會更改Windows桌面應用程序的基本的API。 (當然除了適用於Windows RT的)

未來版本的Windows也不會;對這些API的任何更改都會破壞與所有現有應用程序的兼容性。

+0

有很多像任何事物的接口的變化。您確定VB6 x86應用程序可以與x64 Win8 API配合使用嗎? – Nasenbaer

+0

@Nasenbaer:你在說什麼?他問的是基本的Windows API。 – SLaks

+0

每個VB6應用程序是x86和每個Win8是x64。我需要牢記的事情。而且還改變了Win8中的一些東西,這與Win98,WinXP,Win7不一樣......我不知道,但也許API已經改變或不再支持? – Nasenbaer

3

保持舊的VB6程序運行肯定是越來越困難。 Windows 7 SP1部署了一個l ong overdue update to ADO,這將阻止舊的VB6 dbase應用程序無法工作。 MSCOMCTL.OCX this year有兩個重要的安全補丁,其中一個修改了guid。

雖然你可以保留舊機由剛剛跳過這些更新運行的舊VB6應用程序時,Windows 8將會有他們在的地方,你無法恢復。您必須在具有這些更新的計算機上重建您的應用程序,以便使用新的類型庫。如果這不是一個選項,那麼虛擬機就是保持它的方式。但是我沒有看到虛擬XP模式的支持。

+0

Win8上的x86 ADO typelib是向後兼容的,因此它們基本上取消了/修正了使用Win7 SP1所做的更改。 Win7 SP2也可能會在Win7上恢復ADO typelib。 – wqw

+1

和MSCOMCTL。OCX從未安裝過任何版本的Windows,因此沒有任何問題。如果您將自2008年以來嘗試和失敗的那些多次打破的「安全累積」嘗試之一安裝到您的開發計算機上,並且您正在從開發計算機部署OCX的實時副本,則只會遇到麻煩(a no-no)而不是來自Redist文件夾或標準合併模塊。 – Bob77

+0

@Bob:Ahaaa,所以即使這些補丁MSCOMCTL.OCX在客戶端機器上也可以,如果VB6應用程序是針對開發機器上的「良好」版本編譯的, – wqw

4

我們剛開始在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修復。

+0

找出問題所在。一些表單嵌入了16位顏色深度圖標。改變他們有256色和RBG/A,它似乎修復它。希望我們不需要這樣做。 –

相關問題