5

I have upgraded a VB5 product to VB6 and produced an executable from the VB6 IDE. It will not execute properly without the presence of MSVBVM50.DLL. Without it it generates the following error:

Automation error - cannot find specified module.

What could the reason for this?

Is it possible that there is a component DLL that has been compiled in VB5 that would require the VB5 VM?

CJ7
  • 22,579
  • 65
  • 193
  • 321

2 Answers2

4

In the VB6 IDE the Project > Components menu will show the Components dialog and Project > References will show the References dialog.

Find which components are ticked and make sure that they are the VB6 versions and not VB5 versions. Many of the standard controls were updated with VB6.

In particular look for the various 'Microsoft windows Common Controls' entries as they are some of the ones you are least likely to notice changing as they are visually identical in the toolbox.

Carl Onager
  • 4,112
  • 2
  • 38
  • 66
  • Would there be any harm in including the VB5 runtime in the short term? – CJ7 Jan 31 '13 at 22:26
  • Note that for long-term considerations you should try to swap out the VB5 to VB6 components. The latest (which is still pretty old in most cases) VB6 components will tend to operate better & have fewer incompatibilities. – StayOnTarget Oct 05 '17 at 12:02
2

Your suggestion is correct. If you are using a component (DLL, OCX) that depends on the VB5 runtime you can't run your program without it.

You need to check your referenced DLL's and components to search for the one using VB5 VM.

GTG
  • 4,914
  • 2
  • 23
  • 27