I've recently spent some time helping people install Visual Basic applications on Linux using Wine. So far, I've seen four basic kinds of problems:
"This program requires Internet Explorer 4.01 SP2 or later in order to run."(e.g. Wine bug 3453) That's awfully pessimistic of them. You can bypass this check by creating a text file foo.txt containing
[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer] "Version"="6.0.2900.2180"and then importing it into the Wine registry with
regedit foo.txtThat will often solve the problem, or at least let you get past it long enough to run into the next problem.
The problem is, Wine doesn't make it easy to tell which runtime library you're missing. Oh, it does tell you; it outputs an error message, but it's hidden among thousands of other boring lines like
fixme:ole:ITypeInfo_fnRelease destroy child objects. To find these lines, run the installer again and redirect the output of Wine to a log file. Then search the log for lines containing the string "err:". Then, if you see a line like
err:module:import_dll Library MSVBVM60.DLL (which is needed by "C:\\foo\\bar\\baz.ocx") not foundlook up which installer you need to run to get the missing DLL. If you can guess the vendor (often Microsoft), you can search the vendor's web site for the DLL. In this case, the DLL is part of the Visual Basic 6 runtime, and you can get it by downloading and installing the Visual Basic 6 Runtime installer.