2010-06-04 29 views
1

我使用Visual Studio 2008在C++中编写了一个简单的“Hello,world”应用程序。我能够在本地机器上成功运行应用程序。当我将exe复制到另一台机器上并运行时,它不会运行。它给出了'应用程序由于应用程序配置不正确而无法启动'的错误。另一个系统没有安装Visual Studio。可能是什么问题呢?无法在不同机器上运行本机C++应用程序

谢谢, Rakesh。

+0

这是否说有些DLL不见了? – Naveen 2010-06-04 06:26:09

+0

依赖沃克是你的朋友。它会告诉你你的应用需要什么DLL(如果你在目标PC上使用它,那么缺少哪些DLL) – Rob 2010-06-04 10:34:58

回答

5

可能是CRT DLL丢失。使用静态CRT编译您的应用程序 -/MT(/ MTd用于调试)。 More info

在Visual Studio中,转到Project properties> C/C++> Code Generation> Runtime Library。

4

我想你需要

1)要安装Microsoft Visual C++ 2008 Redistributable Package (x86)

2)阅读的C++应用程序清单和部署:Scenarios for Deployment ExamplesChoosing a Deployment Method

+0

那里..可再发行组件包也只适用于Release配置(不是Debug配置)。 – Default 2010-06-04 06:40:59

+0

@Michael在这种情况下,在Release中构建。如果调试库不在可再发行组件包中,那么它们不会被eula覆盖以用于重新分发,并且您不能在没有安装visual studio的情况下合法地将它们放在机器上。 – 2010-06-04 06:48:45

1

你缺少必需的运行时库(例如, MSVCRT.DLL,MSVCR80.DLL等)。可能您需要在目标机器上安装运行时库(这通常由安装程序完成)。首先,确保您链接的版本是版本的运行时DLL(调试版本不可再发行)。

如果您不知道缺少哪个DLL,可以使用Dependency Walker工具(depends.exe)打开您的可执行文件以查看依赖关系列表。

如果你只是缺少MSVCRT.DLL,你可以选择静态链接它。

0

也许你已经用CLR支持构建你的应用程序,并包含诸如appconfig之类的东西? 如果你不需要CLR,你可以在项目选项中关闭它。 如果问题与.config文件有关,您也可以将它复制到您的PE中,并且一切都将工作。

相关问题