Reputation: 86
Are only basic VB6 Applications running on WIN8? Are any API's different in use like GDI+, Keyhooks, FileSystem or RtlMoveMemory Apis.
VB6 is x86, Win8 is x64.
I already read: VB6 Running on Windows 8?
Upvotes: 5
Views: 2837
Reputation: 41
We have just started testing our VB6 app on Windows 8 x64. The app is huge and complicated. Things generally seem to work, even older third-party OCX controls, etc. ADO/MDAC works fine with various versions of SQL Server. There are lots of Win32 API call that seem to work fine, too. We were also able to install the VB6 IDE on Windows 8 x64 for testing and debugging.
The very first problem, though, was a generic 50003 error and a message saying it couldn't create the main application form or something like that. Further investigation revealed that Windows 8 for some reason doesn't like some of the icons embedded in forms (they are stored in the form's accompanying .frx file and embedded in the .exe at compile time). It appears it may be related to icons with transparent backgrounds.
The app has approx. 100 forms that are affected. Once this problem is fixed the app seems to work fine. But this one thing breaks our distribution executable that runs fine on Windows 7 (and Vista and XP and all server versions, and older versions ran on 2000, Win98 and Win95). It can be easily fixed, but we were hoping to not have to do anything. Sigh.
I'd be interested if anyone else has seen this or has any tips or suggestions.
P.S. @Hans Passant, the Windows 7 SP1 ADO problem is fixed with KB2640696.
Upvotes: 4
Reputation: 941347
Keeping old VB6 programs running is definitely getting harder. Windows 7 SP1 deployed a long overdue update to ADO which will stop old VB6 dbase apps from working. There were two critical security patches for MSCOMCTL.OCX this year, one of them changed the guids.
While you could keep old machines running an old VB6 app by just skipping these updates, Windows 8 is going to have them in place and you can't revert. You'll have to rebuild your app on a machine with these updates so it uses the new type libraries. If that's not an option then a virtual machine is the way to keep it going. I however don't see support yet for Virtual XP Mode.
Upvotes: 3
Reputation: 887365
Windows 8 does not change the basic APIs for Windows desktop apps. (except, of course for Windows RT)
Future versions of Windows also won't; any changes to those APIs would break compatibility with all existing applications.
Upvotes: 7