How does PATH environment affect my running executable from using msvcr90 to msvcr80 ???
- by Runner
#include <gtk/gtk.h>
int main( int argc, char *argv[] )
{
GtkWidget *window;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (window);
gtk_main ();
return 0;
}
I tried putting various versions of MSVCR80.dll under the same directory as the generated executable(via cmake),but none matched.
Is there a general solution for this kinda problem?
UPDATE
Some answers recommend install the VS redist,but I'm not sure whether or not it will affect my installed Visual Studio 9, can someone confirm?
Manifest file of the executable
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
It seems the manifest file says it should use the MSVCR90, why it always reporting missing MSVCR80.dll?
FOUND
After spending several hours on it,finally I found it's caused by this setting in PATH:
D:\MATLAB\R2007b\bin\win32
After removing it all works fine.But why can that setting affect my running executable from using msvcr90 to msvcr80 ???