我用 Visual Studio 2008 和 Visual C ++ 语言创建了一个wn32项目,它使用ws2_32.lib库,然后我在发布模式下编译< / strong>即可。
它在同一台计算机上运行得非常好,但是当我将exe文件复制到其他计算机(没有安装Visual Studio)时,它就不会运行。
我看到的信息是:
此应用程序无法启动,因为应用程序配置不正确。重新安装应用程序可能会解决此问题。
但是,如果我使用 DEV C ++ 编译我的应用程序,与Visual Studio 2008可执行文件(9.5 KB)相比,它会生成更大的可执行文件(738KB)。但是,DEV C ++可执行文件在另一台计算机上运行。
我已将库ws2_32.lib添加到项目的链接器属性中,位于附加依赖项字段中。
如何修复它以使用Visual Studio 2008?
答案 0 :(得分:11)
问题几乎可以肯定是另一台计算机没有安装C ++ CRT的第9版。
VS2008中针对CRT进行编译的默认设置是动态链接与静态链接。如果要使用真实的安装项目部署程序,则需要包含CRT可再发行组件。
但是,如果要进行XCOPY部署,请按照以下页面中的步骤进行操作。
答案 1 :(得分:4)
尝试安装Visual C++ redistributables。如果这不起作用,请使用DependencyWalker找出缺少的DLL。
答案 2 :(得分:1)
您可能缺少程序所需的外部依赖项。例如,检查项目设置以查看是否动态链接到MFC。您还可以运行Depends实用程序来检查缺少的依赖项。
答案 3 :(得分:1)
我同意JaredPar。使用VS2008构建的应用程序使用动态链接,而DEV C ++是静态链接,因此规模较大,为什么一个工作而不是另一个。
但是,如果它是一个普通的win32应用程序项目(并且您不希望/需要通过设置分发它),那么可能能够让它运行另一台机器没有重新分配CRT,让VS2008为你静态链接(如果它只是你缺少的标准库)。我手边没有VS2008的副本,所以我将在VS2005中描述如何做到这一点,希望它能够翻译过来。
试试看是否有效。你现在显然会得到一个更大的最终二进制文件,因为这个库是静态链接的。