Msvc executable compatibility

Started by
5 comments, last by Xai 16 years, 8 months ago
Hello I'm compiling a program (made with Microsoft visual C++ 2005 express edition) in release mode but I can't get it running on a friend's computer. I've ensured I'm linking only to release versions of the .libs I'm using. My friend gets an error like "Incorrect configuration, please re-install the program". In order to see if this was a "missing dll" problem, I've debugged my release-compiled app to see which DLLs were loaded. Here's the result :

'Release.exe': Loaded 'C:\Libraries and engines\Roadrash\Samples\Untitled Game\bin\Release.exe', Symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\opengl32.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\advapi32.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\rpcrt4.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\gdi32.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\user32.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\glu32.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\ddraw.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\dciman32.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\OpenAL32.dll', Binary was not built with debug information.
'Release.exe': Loaded 'C:\WINDOWS\system32\winmm.dll', No symbols loaded.
'Release.exe': Loaded 'C:\Libraries and engines\Roadrash\Samples\Untitled Game\bin\alut.dll', Binary was not built with debug information.
'Release.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\msvcp80.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\msvcr80.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\usbmn1x1.dll', Binary was not built with debug information.
'Release.exe': Loaded 'C:\WINDOWS\system32\msctf.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\nvoglnt.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\mcd32.dll', No symbols loaded.
'Release.exe': Unloaded 'C:\WINDOWS\system32\mcd32.dll'
'Release.exe': Loaded 'C:\WINDOWS\system32\wdmaud.drv', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\setupapi.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\wintrust.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\crypt32.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\msasn1.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\imagehlp.dll', No symbols loaded.
'Release.exe': Unloaded 'C:\WINDOWS\system32\setupapi.dll'
'Release.exe': Unloaded 'C:\WINDOWS\system32\wdmaud.drv'
'Release.exe': Loaded 'C:\WINDOWS\system32\wdmaud.drv', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\setupapi.dll', No symbols loaded.
'Release.exe': Unloaded 'C:\WINDOWS\system32\setupapi.dll'
'Release.exe': Loaded 'C:\WINDOWS\system32\msacm32.drv', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\msacm32.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\midimap.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\wrap_oal.dll', Binary was not built with debug information.
'Release.exe': Loaded 'C:\WINDOWS\system32\ole32.dll', No symbols loaded.
'Release.exe': Unloaded 'C:\WINDOWS\system32\wrap_oal.dll'
'Release.exe': Unloaded 'C:\WINDOWS\system32\ole32.dll'
'Release.exe': Loaded 'C:\WINDOWS\system32\wrap_oal.dll', Binary was not built with debug information.
'Release.exe': Loaded 'C:\WINDOWS\system32\ole32.dll', No symbols loaded.
'Release.exe': Unloaded 'C:\WINDOWS\system32\wrap_oal.dll'
'Release.exe': Unloaded 'C:\WINDOWS\system32\ole32.dll'
'Release.exe': Loaded 'C:\WINDOWS\system32\wrap_oal.dll', Binary was not built with debug information.
'Release.exe': Loaded 'C:\WINDOWS\system32\ole32.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\clbcatq.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\oleaut32.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\comres.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\version.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\dsound.dll', No symbols loaded.
'Release.exe': Loaded 'C:\WINDOWS\system32\setupapi.dll', No symbols loaded.
'Release.exe': Unloaded 'C:\WINDOWS\system32\setupapi.dll'
'Release.exe': Loaded 'C:\WINDOWS\system32\setupapi.dll', No symbols loaded.
'Release.exe': Unloaded 'C:\WINDOWS\system32\setupapi.dll'
'Release.exe': Loaded 'C:\WINDOWS\system32\setupapi.dll', No symbols loaded.
'Release.exe': Unloaded 'C:\WINDOWS\system32\setupapi.dll'
'Release.exe': Loaded 'C:\WINDOWS\system32\setupapi.dll', No symbols loaded.
'Release.exe': Unloaded 'C:\WINDOWS\system32\setupapi.dll'
'Release.exe': Loaded 'C:\WINDOWS\system32\ksuser.dll', No symbols loaded.
The thread 'Win32 Thread' (0x790) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0xf48) has exited with code 0 (0x0).
'Release.exe': Loaded 'C:\WINDOWS\system32\setupapi.dll', No symbols loaded.
'Release.exe': Unloaded 'C:\WINDOWS\system32\setupapi.dll'



The dlls I've sent to my friend are : OpenAL32.dll alut.dll wrap_oal.dll msvcm80.dll msvcp80.dll msvcr80.dll (BTW, Why are those needed in release builds?) Still, it does not work. What could the problem be?
Advertisement
Quote:Original post by Trillian
The dlls I've sent to my friend are :
OpenAL32.dll
alut.dll
wrap_oal.dll
msvcm80.dll
msvcp80.dll
msvcr80.dll (BTW, Why are those needed in release builds?)

Still, it does not work. What could the problem be?


You can't just distribute the vc++ runtime dll's like that. They have to be installed and configured properly. The following link is what you need.

Microsoft Visual C++ 2005 Redistributable Package (x86)
This space for rent.
Quote:Original post by gumpy
You can't just distribute the vc++ runtime dll's like that. They have to be installed and configured properly. The following link is what you need.

Microsoft Visual C++ 2005 Redistributable Package (x86)


That trick used to work back when I was using msvc 7.1. :P

But hey, does that mean that it is not possible to compile an application that will run anywhere using 2005EE? There must be a way of making it run without having to install stuff like that. If there isn't, I'll run back to 7.1!

EDIT:
Quote:Original text by Microsoft
The Microsoft Visual C++ 2005 Redistributable Package (x86) installs runtime components of Visual C++ Libraries required to run applications developed with Visual C++ on a computer that does not have Visual C++ 2005 installed.


Please tell me that's a lie! o.O
Quote:Original post by Trillian
That trick used to work back when I was using msvc 7.1. :P

Yes, Microsoft introduced a new method of locating some DLLs, because they wanted to solve the old DLL-hell issue... I won't comment if it's bad or good but that's what they did... ;)

Quote:Original post by Trillian
But hey, does that mean that it is not possible to compile an application that will run anywhere using 2005EE? There must be a way of making it run without having to install stuff like that. If there isn't, I'll run back to 7.1!

You can always link statically. Oh and, 7.1 had it's own runtimes too. Except that in 99% of the cases, the files were already installed by some other applications so you didn't have to distribute or install them manually. Though, I believe there was the same kind of package for 7.1 runtimes.

Quote:Original post by Trillian
EDIT:
Quote:Original text by Microsoft
The Microsoft Visual C++ 2005 Redistributable Package (x86) installs runtime components of Visual C++ Libraries required to run applications developed with Visual C++ on a computer that does not have Visual C++ 2005 installed.


Please tell me that's a lie! o.O

That's not a lie. If you link your app to DLL runtimes - they are required.
Okay now it's getting frustrating.

My friend runned the "Microsoft Visual C++ 2005 Redistributable Package (x86)".

In order to find the problem, I've created a tiny little application that opens and closes his cd-rom drive. The only dependancy is "winmm.lib". Still, he cannot run it. The program is compiled in release mode with runtime libs in multithreaded dll.

Is there any reason why this simple app (6.5 kb) wouldn't work? What's up with visual C++ 2005?
Yay I got it fixed! My friend had to install "Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)"!

Thanks to all!
Quote:Original post by Trillian
Yay I got it fixed! My friend had to install "Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)"!

Thanks to all!


oh the joys of MS's fixes to dll hell :)

This topic is closed to new replies.

Advertisement