我使用Visual Studio在C ++中创建了一个客户端服务器应用程序。
现在我想在另一台计算机上运行客户端exe文件(它没有安装Visual Studio) 但是当我尝试运行exe文件时,它会给出以下错误消息:
此应用程序无法启动,因为该应用程序 配置不正确。重新安装应用程序可能会解决此问题 问题
如何在不在计算机上安装任何内容的情况下运行exe文件?
答案 0 :(得分:19)
使用Visual Studio构建的应用程序依赖于Visual C ++ Redistibutable(VCRedist)。当程序动态链接时,您的二进制文件将需要
MSVCR**.dll
(Microsoft C运行时库)。
在MSDN上,有一篇名为Redistributing Visual C++ Files (for Visual Studio 2008)的好文章,指出潜在的运行时错误,以防所需的Visual C ++库未安装:< / em>的
基本上你有两个选择:您可能会收到以下错误消息之一,具体取决于您尝试运行应用程序的Windows版本:
- 应用程序未能正确初始化(0xc0000135)。
- 此应用程序无法启动,因为应用程序配置不正确。重新安装应用程序可能会解决此问题。
- 系统无法执行指定的程序。
Multi-threaded DLL (/MD)
更改为Multi-threaded (/MT)
。但是你的应用程序也可能依赖于其他DLL。如果你想知道程序的依赖性,有一个很棒的实用程序叫Dependency Walker,可以帮助你解决这个问题以及许多其他情况:)
答案 1 :(得分:11)
<强>背景强>
<强> Soloution:强> 最后,无论如何,目标计算机应具有确切的运行时程序集。有几种方法可以做到这一点(更多细节在谷歌搜索)。
条件:
答案 2 :(得分:4)
之前我没有看到过那个特定的错误,通常这是一个错误的DLL(windows可再发行组件)的错误。假设配置实际上没有问题,您有两种选择:
1)将编译模式从Multithreaded DLL更改为Multithreaded。这可以从代码生成下的项目属性的C ++部分完成。在多线程模式下,您的二进制文件将静态链接到可再发行的窗口。这可能就是你想要的。
2)在目标计算机上安装可再发行的Windows。这可能不正常b / c你声明你不想在目标机器上安装任何东西。
关于选项1的警告,不同版本的Windows具有不同版本的可再发行组件。可能会遇到一个高度专业化的环境,其中静态链接的程序将无法按预期运行。
答案 3 :(得分:4)
我在发布而不是调试中部署了我的程序,而exe现在可以在另一台计算机上运行
答案 4 :(得分:2)
看起来你错过了一些DLL文件。一定要复制适当的dll和exe。