Assuming that vb6 does not run on Windows 8 because the VB6 run time libraries are not shipped with Windows 8, would it not be possible to install the VB6 run time library on Windows 8 and then then run VB6? Or is there another problem?
13 Answers
EDIT: Microsoft is going to support the VB6 runtime in Windows 8.
VB6 apps still work in Windows 8 in the Developer Preview, as of September 13th, 2011).. They also run in the Consumer Preview and as stated above, Microsoft are committed to having VB6 just work in Windows 8.
This is a very difficult question to truly answer, but I'll try and provide the best response that I can.
We really don't know for sure, seeing as how it has not been released yet and is probably only in the early stages of development. There is also no way to predict what kind of hacks might surface to allow VB6 applications to run on Windows 8. I have a fair bit of confidence that it will be only a matter of time before the community comes up with some sort of workaround, if you're really all that concerned. I will probably even look into it myself, if for no other reason than pure curiosity.
However, the official word is that this configuration will likely not be supported:
...there are no plans to include VB6 runtime in future versions of Windows beyond Windows 7.
It's also worth considering the talk about Windows 8 being released only in a 64-bit version (as is the case with Server 2008 R2). Since the VB6 runtime (and all applications created by the VB6 compiler) are 32-bit, they will have to run in an emulated 32-bit layer (WOW). Some apps have already experienced issues running in 64-bit versions of Windows 7, and this problem may only get worse. The IDE is currently not supported on 64-bit versions of Windows, making continued maintenance of legacy applications only that much more difficult (although for what it's worth, I just installed it on my dev box running Server 2008 R2 without any problems).
Microsoft updated their support statement as of January 2012. It appears VB6 will be supported in Windows 8.
VB6 runtime will ship and will be supported in Windows 8 for the lifetime of the OS. Visual Basic 6.0 runtime files continue to be 32-bit only and all components must be hosted in 32-bit application processes. Developers can think of the support story for Windows 8 being the same as it is for Windows 7.
Microsoft last month announced that it was extending “It Just Works” compatibility for Visual Basic 6 applications for the full lifetime of Windows Vista, Windows Server 2008, Windows 7 and (most importantly) Windows 8. As described on the Visual Basic 6.0 Resource Center, “the core Visual Basic 6.0 runtime will be supported for the full lifetime” of these operating systems. The commitment comprises five years of mainstream support followed by five years of extended support.
Karl Peterson is a VB6 programmer and formerly a longtime columnist at Visual Studio Magazine and Visual Basic Programming Journal (where he wrote the popular VB Corner column, among others, until 2010). Peterson notes that this announcement officially puts the lifetime of the VB6 runtime past his projected retirement. And that fact may have implications for enterprises sitting on large amounts of working VB6 code, which Peterson calls “the COBOL of the 2020s.”
“Many in the Classic VB community started out back in the pre-Windows days, and are now at the point of seeing retirement on the horizon,” he says. “And the loss of that institutional knowledge at many enterprises will only further entrench the functional code base.”
Peterson says Microsoft’s decision reflects the fact that VB6 adoption went beyond the “hobbyist or shareware type author who was the guerilla in the enterprise.” He says Microsoft was likely moved to extend support because businesses still maintain VB6 code of real value, and are in no position to immediately migrate off it.
Source: MSDN Magazine
Microsoft has everything to gain and nothing to lose by insuring backwards compatibility. Visual Studio advertised Interop as a way to integrate Vb6 technology with .net; seems like Microsoft would be shooting itself in the foot if it removed this compatibility as I presume vb6 runtimes are required for Interop to work.
I think all ActiveX libraries will still working the same way they actually do under Windows 7. Remember Microsoft says Windows 8 will have a ''classic Windows mode'' (with desktop, menu bar, etc like Windows 7).
Other question is about ARM systems, I think there will be two scenarios: x86 programs will not work at all, or Microsoft will include an emulation layer for use Intel programs (at performance cost).
So Windows 8 will probably not be the deadline for VB6 and all the related software, but problems will increase for sure until the day we can't use in any way. So be prepared for virtualize and run VB6 with software like XP Mode (Virtual PC), VirtualBox, VMWare, etc.
From what I can tell they work just the same in Windows 8 as they do in Windows 7 - they've said that everything in Windows 7 will work in Windows 8 (assuming hardware is the same). There are still a huge number of VB6 apps out there so it makes no sense for them to drop support for no reason. You could get some guys from the Windows 8 forums to check it out, as they will have access to builds other than the Developer Preview and may be able to get some feedback for you.
There's also a post here which may help you: Google Groups Post
I've read that the you can place the msvbvm60.dll in the same folder as your Visual Basic 6 exe and it works. I have not personally verified this and not, of course, in Windows 8.
I have an utility I'm selling with 20K lines of VB6 code which only requires a drag and drop deployment with no install package. So I have an intense interest in this problem in Windows 8 as well.
From what I've seen, the VB6 runtime does seem to work...but my attempts at installing the IDE on Windows 8 RTM 64-bit was a colossal failure. I ran into lots of very major errors (seems like a number had to do with OLE registration) and the installer didn't even finish properly. I'll stick with my XP VM for VB6 development.
I'd also approach cautiously with regard to what does work in Windows 8. Just being able to load and show a plain vanilla form is far different from running an ADO connection to a SQL Server, loading and playing media, or doing any type of serious socket communication. As always, test thoroughly! :)
Edit: Looks like Microsoft's support statement (linked to in another comment) validates that Windows 8 as it stands will not support the IDE.