views:

175

answers:

3

Hi, i'm developing a C++ simulation (OpenGL) on top of VS2008 enviroment. My current operating system is Windows Vista. The trouble is that when trying to execute the application on a Windows XP machine, my application crashes because incompatibilities beteween DLL's (namely, msvcrt.dll function entry points ) ... Has anyone experienced such problem?

+1  A: 

I seriously doubt that's the real reason it crashes. You probably just didn't deploy the CRT libraries to the target machine. Or deployed the debug build. If this is a single EXE with no DLL dependencies then solve your problem by linking the static version of the CRT. Right-click the project in Solution Explorer, Properties, C/C++, Code Generation, Runtime libraries, select /MTd. Repeat for the Release configuration, now choosing /MT.

Hans Passant
the version of the executable that i trying to execute is compiled with release target!
Lucas
A: 
  1. Open the Visual Studio Command Prompt.
  2. Type "depends.exe" and press enter.
  3. Open the deployable EXE/DLL from depends.
  4. Write down the list of DLL's needed to run your application.
  5. Verify that those DLL's are either deployed with your targeted OS version or that you deploy them yourself.
David Gladfelter
Microsoft did not include Dependency Walker with Visual Studio 2008 (it was included in previous versions, though). It can be downloaded from http://dependencywalker.com/
James McNellis
+1  A: 

search for 'C redistributables' on MSDN. YOu will see a list of all the run time libs you need, make sure you get the debug / non debug and the unicode / ansi choices correct

pm100
yes, i have installed the runtime files, reboot the machine and the problems with DLL continue
Lucas
If the entry point was not found, then the correct runtime files were not installed properly.
sean e