I have an application that uses wxWidgetsas a user interface structure and compiled using Visual Studio 2010 on a computer running Windows 7. I am linking wxWidgetsstatically. My application also uses C dll for processing.
Now I am trying to run this application on another recently installed machine (Win7). It does not have a developer environment setting. I copied the application executable supporting dll and other supporting text files on this computer.
When the application starts, it issued the following message.
The program failed to start because MSVCR100d.DLL is missing from your computer. Try reinstalling the program to fix this problem.
I realized that my C library uses the debug version and compilation, which in mode Releasesolved the problem. But he still asks MSVCR100.dll. I think the workaround is to install the redistributable VC ++ package. But not sure if this is the best approach.
Here are my questions.
- How do you usually deploy the application? Do you also provide a redistributable VC ++ package?
- I compile this on a 64 bit machine and test on a 32 bit machine. This is normal? Or do I need to compile separately for 32 bits?
- Can I statically reference a runtime library? So that I can just send my DLLs and other files.
- What are other common things that I should know about when creating an executable that will work on many machines?
Below are some of my settings that may be relevant.
General :
Use of MFC : Use standard windows libraries
Use of ATL : Not using
C/C++ :
Runtime library : Multi-threaded(/MT)
.