在另一台计算机上运行使用Visual Studio构建的exe文件的问题

时间:2013-03-08 15:17:57

标签: c++ visual-studio visual-studio-2008 visual-c++ exe

我使用Visual Studio在C ++中创建了一个客户端服务器应用程序。

现在我想在另一台计算机上运行客户端exe文件(它没有安装Visual Studio) 但是当我尝试运行exe文件时,它会给出以下错误消息:

  

此应用程序无法启动,因为该应用程序   配置不正确。重新安装应用程序可能会解决此问题   问题

如何在不在计算机上安装任何内容的情况下运行exe文件?

5 个答案:

答案 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)。
  •   
  • 此应用程序无法启动,因为应用程序配置不正确。重新安装应用程序可能会解决此问题。
  •   
  • 系统无法执行指定的程序。
  •   
基本上你有两个选择:
  • 最简单的解决方案是将运行时库的动态链接更改为静态链接。转到项目属性,然后在 C / C ++&gt;下代码生成您将找到运行时库选项。您需要将其从Multi-threaded DLL (/MD)更改为Multi-threaded (/MT)
  • 另一种可能的解决方案是确保在目标计算机上安装了正确版本的Microsoft VC ++ Redistributable Package。

但是你的应用程序也可能依赖于其他DLL。如果你想知道程序的依赖性,有一个很棒的实用程序叫Dependency Walker,可以帮助你解决这个问题以及许多其他情况:)

答案 1 :(得分:11)

<强>背景

  • C ++应用程序需要运行时程序集(DLL)才能在任何Windows计算机上运行。
  • 通常这些运行时程序集位于C:\ Windows \ Winsxs目录。
  • 默认情况下,所有Windows操作系统都带有多个运行时程序集。
  • 但如果您的应用程序是在较新版本的运行时汇编环境中开发的,那么目标计算机还需要存在相同版本的运行时。
  • 安装Visual Studio时,大多数较新版本的运行时程序集都会进入您的计算机。

<强> Soloution: 最后,无论如何,目标计算机应具有确切的运行时程序集。有几种方法可以做到这一点(更多细节在谷歌搜索)。

  1. 将运行时程序集与应用程序静态链接(适用于大型应用程序的麻烦)。
  2. 在目标计算机中安装C ++重新分发环境(最简单的方法)。
  3. 创建安装项目以在安装应用程序时在目标计算机中部署运行时。 (不错)
  4. 将运行时程序集部署为私有程序集(专业程序),请参阅here了解更多详细信息
  5. 条件:

    • 您不得在您的应用程序中使用.NET框架。
    • 您不得对您的应用程序使用公共语言运行时支持

答案 2 :(得分:4)

之前我没有看到过那个特定的错误,通常这是一个错误的DLL(windows可再发行组件)的错误。假设配置实际上没有问题,您有两种选择:

1)将编译模式从Multithreaded DLL更改为Multithreaded。这可以从代码生成下的项目属性的C ++部分完成。在多线程模式下,您的二进制文件将静态链接到可再发行的窗口。这可能就是你想要的。

2)在目标计算机上安装可再发行的Windows。这可能不正常b / c你声明你不想在目标机器上安装任何东西。

关于选项1的警告,不同版本的Windows具有不同版本的可再发行组件。可能会遇到一个高度专业化的环境,其中静态链接的程序将无法按预期运行。

答案 3 :(得分:4)

我在发布而不是调试中部署了我的程序,而exe现在可以在另一台计算机上运行

答案 4 :(得分:2)

看起来你错过了一些DLL文件。一定要复制适当的dll和exe。