我的C(++)程序,使用Visual C(++)/ Visual Studio编写和编译,在我自己的机器上运行良好,但拒绝在另一台机器上运行.我得到的错误消息是"此应用程序无法启动,因为应用程序配置不正确.重新安装应用程序可能会解决此问题."
如果编写C++程序,它会动态链接到C运行时库或简称CRT.这个库包含你的printf,malloc,你的strtok等等.该库包含在名为MSVCR80.DLL的文件中.默认情况下,此文件未安装在Windows系统上,因此无法运行该应用程序.
解决方案?通过VCREDIST.EXE(Visual C++ Redistributable Package)在目标计算机上安装DLL,或静态链接到CRT(将已使用函数的实际代码直接插入EXE).
分发和安装VCREDIST以及一个简单的应用程序是一个痛苦的屁股,所以我选择了第二个选项:静态链接.这很简单:转到项目的属性,展开C/C++,单击代码生成,并将运行时库设置为其中一个非DLL选项.这里的所有都是它的.
这里的问题是缺少DLL依赖,例如CRT(C运行时库).诊断此类问题的一个很好的工具是Dependency Walker(depends.exe),您可以在此处找到:
http://www.dependencywalker.com/
您将在生成您发布的错误消息的计算机上运行此程序,并使用它来打开生成此错误的exe.Dependency Walker将快速并以图形方式指示机器上所需但不可用的任何DLL.