这是错误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.
答案 0 :(得分:14)
打开项目的属性表,转到配置属性 - > C / C ++ - >代码生成页面,并将运行时库选择更改为/ MT或/ MTd,以便您的项目不使用DLL运行时库。
VS2003及更高版本使用的C / C ++ DLL运行时不会自动与最新版本的操作系统一起分发,如果没有这类问题,安装和工作真的很麻烦。静态链接c-runtime,只是避免显示和特定于版本的运行时dll的总体混乱。
答案 1 :(得分:5)
很抱歉碰到一个老问题,但我能够解决这个问题并且认为我会发布一个解决方案以防其他人需要它...
即使在安装了Microsoft的可再发行的DLL后,我也遇到了这个错误,修复方法是复制
C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT
文件夹进入目标PC上的应用程序目录。在那之后,没有更多的问题。
顺便说一下,给我提出问题的DLL是第三方DLL,以前从未在100多台其他计算机上遇到过问题......去看看。答案 2 :(得分:4)
我遇到了这个问题。解决方案有两个步骤:
1.在“Release”模式下编译程序而不是“Debug”模式(工具栏中通常有一个组合框)
2.从Microsoft下载他们的Redistributable Package运行时组件。确保下载适用于32位计算机的x86版本和适用于64位计算机/操作系统的x64版本。在目标计算机上安装此软件包,您的应用程序应运行良好
P.S。这个是一个SxS的东西
P.P.S.或者,使用不同的编译器(如GCC,例如使用Dev-Cpp)来编译程序的源代码,您的头痛将会消失。
答案 3 :(得分:3)
运行事件查看器:它将提供更多信息。
可能您试图在没有安装VC可再发行组件的计算机上运行程序,或者您尝试在未安装Visual Studio的计算机上运行调试版本(调试库)不可再分发)。
答案 4 :(得分:1)
我在其他winxp sp3机器上遇到与VS 2008构建的调试二进制文件相同的问题。
问题是由于vc redist包没有安装dll的调试版本这一事实造成的,他们不知何故认为这要由程序员来解决。