views:

2050

answers:

2

I made a program in Visual Studio 2010 on Windows 7 64-bit. When I try to run it on Windows XP 32-bit I got message that msvcr100.dll is missing. When I try to copy that file from Win7 to WInXP I got message that msvcr100.dll is wrong. How to set biulding in VS so msvcr100.dll would not be necessary?

+3  A: 

First you need to make sure you're building a 32 bit executable - 64 bit ones won't run on 32 bit Windows.

Then you can either...

  • Ship the 32 bit redistributables with your application.
  • Remove the runtime dependency altogether and link statically to the C++ runtimes. To do this, set Project -> Properties -> Configuration Properties -> C/C++ -> Code Generation -> Runtime Library to Multi-threaded (/MT).
Joe Gauterin
Thanx, that helped :)
Ichibann
+2  A: 

Linking the runtime libraries statically should help. Go to Project Options -> C/C++ -> Code Generation -> Runtime Library and change the value to Multithreaded or Multithreaded Debug and recompile. This way your application shouldn't depend on the runtime DLLs.

Also don't forget to build a 32bit executable.

dark_charlie