Microsoft's classic win9X-era version of Visual C++.
Still in use for some shipping retail apps twelve years later!
What does not
If I create a project with appwizard, I can't complie it, only after restarting wine. Wine says '... Ignoring share mode'.
The onlne help viewer is broken. I can't see anything from .chm files, in general.
Compiling floating-point code needs 'atodbl', which isn't implemented in wine, so that doesn't work, too. I've implemented that function myself, recompiled the msvcrt.dll from wine, and it woked.
What was not tested
The intall procedure. MFC features.
wine installed from source. Please impement 'atodbl' from msvcrt.
|Operating system||Test date||Wine version||Installs?||Runs?||Used|
|Show||Ubuntu 15.04 "Vivid" amd64 (+ variants like Kubuntu)||May 12 2015||1.7.38||Yes||Yes||Gold||an anonymous user|
|Show||Ubuntu 10.04 "Lucid" i386 (+ variants like Kubuntu)||May 16 2011||1.2.2||Yes||Yes||Bronze||an anonymous user|
|Show||Fedora 8||Nov 02 2008||1.1.5||Yes||Yes||Platinum||an anonymous user|
|Show||Gentoo Linux x86_64||Aug 09 2008||1.1.2||Yes||Yes||Silver||Jazz|
|Current||UHU-Linux 1.1 "Kamion"||Jul 15 2006||0.9.12.||N/A||Yes||Gold||an anonymous user|
Native alternatives for non-windows platforms:
Make sure you operate on a clean WINEPREFIX (~/.wine)!
Prerequisite installation by using 'winetricks' script
will take care of needed installation prerequisites and work around
sÂome installer problems.
$ wget http://kegel.com/wine/winetricksÂ
Â$ sh winetricks -q vcrun6 mfc40
Install steps to work around some bugs
After winetricks step start "winecfg" tool and select "Windows 98" from Windows Version Listbox. Press "Apply" button. Press "Ok" button.
Now you may run the installer. The installer might crash when trying to install the required 'virtual machine for java' (bug 18097). Ignore this and upon "reboot" when asked to install DCOM98, uncheck the box and let the installer proceed.
After the installation is finished, change the Windows version back to default (Windows XP).
ÂBecause bug 5322 will probaÂbly stand a long time, I present another method.
1.) Save the following snippet to a text file, for example "vc6-installer-fix":
while(*++$x != 0x07B0B18B && $x < $end)
if $x != $end
set *(int*) $x = 0x5BC0335E
set *(int*)($x+4) = 0x900004C2
handle SIGSEGV pass nostop noprint
handle SIGTRAP nopass nostop noprint
2.) run the following command, assuming you saved the snippet to "vc6-installer-fix":
$ winedbg --gdb setup.exe < vc6-installer-fix
NOTE: If the installer spawns a sub-installer that crashes due to this bug, you must first run the main installer and then attach to sub-installer with debugger.
This can be done in automated way (assuming the main installer has already started sub-installer):
Â$ winedbg --gdb $(( 16#$(winedbg --command "info proc" | grep your-sub-installer-process-name | cut -f 2 -d " ") )) < vc6-installer-fixÂ
It tells winedbg to query process ids, filters out the target process, converts the PID to decimal and then starts winedbg in gdb proxy mode, attaching to target process and executing patch script.
This should work for all VC6 installers and even Embedded Visual C++ 4.x ones.What does it do?
Basically it starts the installer under control of a debugger and the works around bug 5322 by in-memory patching execution flow.
NOTE: This method is not recommended for the average user!