Many companies fear that upgrading to Windows 10 or 11 will kill their old Visual Basic 6 applications. In most cases, that fear is unfounded: Microsoft keeps shipping the VB6 runtime with Windows. But there are nuances worth knowing.
What still works
The core of the Visual Basic 6 runtime (MSVBVM60.dll) ships with Windows 10 and 11. A "standard" VB6 application that only uses base components therefore usually starts with no special handling. Microsoft has committed to supporting the runtime for the lifetime of Windows.
What can break
- Third-party ActiveX / OCX controls: these, not VB6 itself, most often cause problems. They must be present and correctly registered (
regsvr32); - 64-bit architectures: VB6 applications are 32-bit, which remains supported, but some legacy 16-bit components or drivers are not;
- Paths and permissions: writing to
Program Filesor the registry, once tolerated, is now restricted by UAC; - Old database dependencies (obsolete ODBC/OLEDB drivers) sometimes absent from recent systems.
When an application refuses to start
Most often, the error points to a missing or unregistered component. Pinpointing the exact faulty dependency in an executable whose source you don't have can be tricky. This is a case where binary analysis helps: VBReFormer lists the COM, OLE and ActiveX components referenced by the application, letting you immediately spot which dependency to install or re-register. The free edition is enough for this inspection.
What about the long term?
Running VB6 on Windows 11 is one thing; maintaining it over time is another. If you've lost the source code, this is the right moment to recover it, or even to consider a migration to .NET. But there's no rush: as long as Windows ships the runtime, your application keeps running.