15

这是 Dependency Walker 在我使用 VC++ 2005 Express Edition 构建的可执行文件上给我的错误。尝试运行 .exe 时,我得到:

This application has failed to start because the application configuration
is incorrect. Reinstalling the application may fix this problem.

(我是清单/SxS/等的新手。VC++ 2003 之后的处理方式。)

编辑:我在构建 .exe 的同一台机器上运行。在事件查看器中,我没有帮助:

Faulting application blah.exe, version 0.0.0.0, faulting module blah.exe,
version 0.0.0.0, fault address 0x004239b0.
4

5 回答 5

14

打开项目的属性表,转到配置属性 -> C/C++ -> 代码生成页面,并将运行时库选择更改为 /MT 或 /MTd,以便您的项目不使用 DLL 运行时库。

VS2003 及更高版本使用的 C/C++ DLL 运行时不会自动随最新版本的操作系统一起分发,并且在没有此类问题的情况下安装和开始工作真的很痛苦。静态链接 c-runtime 并避免清单和特定于版本的运行时 dll 的混乱。

于 2009-01-06T15:01:12.570 回答
5

很抱歉提出一个老问题,但我能够解决这个确切的问题,并认为我会发布一个解决方案以防其他人需要它......

即使在安装了 Microsoft 的可再发行 DLL 之后,我也遇到了这个错误,修复方法是复制

C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT

文件夹到目标 PC 上的应用程序目录中。之后,就没有更多的问题了。

顺便说一句,给我带来问题的 DLL 是一个第 3 方 DLL,之前在 100 多台其他计算机上从未出现过问题……去看看。

于 2009-07-07T15:51:15.170 回答
4

我遇到过这个问题。该解决方案有两个步骤:
1. 在“发布”模式而不是“调试”模式下编译程序(工具栏中通常有一个组合框)
2. 从 Microsoft 下载运行时组件的Redistributable Package。确保下载适用于 32 位计算机的 x86 版本和适用于 64 位计算机/操作系统的 x64 版本。在目标计算机上安装此软件包,您的应用程序应该可以正常运行

PS 这一个 SxS 的东西
PPS 或者,使用不同的编译器(比如 GCC,例如使用 Dev-Cpp)来编译你的程序的源代码,你的头痛就会消失。

于 2008-11-01T18:37:11.640 回答
3

运行事件查看器:它会有更多信息。

可能你试图在没有安装 VC 可再发行组件的机器上运行你的程序,或者你试图在没有安装 Visual Studio 的机器上运行调试版本(调试库不是可再分配)。

于 2008-10-31T16:27:13.697 回答
1

我在其他 winxp sp3 机器上使用 VS 2008 构建的调试二进制文件时遇到了同样的问题。

  1. 我首先尝试使用 vc redist 包安装客户端机器,因为它看起来很明智。恼人的是,它没有用
  2. 我尝试将所有依赖的 dll 复制到应用程序的目录 - 仍然没有工作
  3. 在被这个问题困扰了几个小时后,我发现最新的 VS 版本需要清单和策略才能与 dll 链接。将它们复制到各自的“C:\WINDOWS\WinSxS\”文件夹后,我就可以正常工作了。

问题是由于 vc redist 包没有安装调试版本的 dll 引起的,他们不知何故认为这取决于程序员来解决。

于 2010-06-20T01:03:40.437 回答