【问题标题】:application failed to initialize properly (0xc0150002) [duplicate]应用程序未能正确初始化(0xc0150002)[重复]
【发布时间】:2009-08-05 04:45:16
【问题描述】:
我在 windows server 2000 sp4 上运行的 Visual Studio 5 中创建的 mfc 应用程序,我为它创建了一个版本并尝试在 win xp slp2 下运行它。它使我的应用程序无法正确初始化(0xc0150002)
我尝试过以下事情
- 安装 Microsoft Visual C++ 2005 SP1 Redistributable Package (x86) 发布文件夹中的一个以及可从网站下载的一个
从 microsoft visual sutdio\vc\redist 复制所有 dll 和 mainfest
我仍然不断收到相同的消息。 c
可能出了什么问题?我该如何解决它
【问题讨论】:
标签:
windows
visual-studio
visual-c++
visual-studio-2005
【解决方案1】:
需要检查的一些事项:
- 检查项目的 /SUBSYSTEM 链接器选项。它可能包括操作系统主要/次要版本号。
- 确保您在 DEV 机器上使用适当的 Windows XP PlatformSDK;检查 WINVER、_WIN32_WINNT 的值
- 使用depends查看问题是否出在未解决的依赖项中
- 检查应用程序所需的运行时版本与目标机器上的版本。我通常通过从一侧查看应用程序的清单并从另一侧查看目标计算机的 WinSxS 文件夹来执行此操作(最近有来自 Microsoft http://msdn.microsoft.com/en-us/visualc/ee309358.aspx 的 ATL 安全更新;由更新的 Visual Studio 创建的新二进制文件将不会在计算机上运行没有相同的更新版本的运行时)。
【解决方案2】:
您可能已经对 VS2005 SP1 应用了安全更新或编译器更新。这使其生成一个清单,该清单请求的 MFC/CRT-dll 与安装 Microsoft Visual C++ 2005 SP1 Redistributable Package (x86) 的 MFC/CRT-dll 不同。
尝试使用 Depends.exe 并打开您的应用程序,然后在菜单中选择“配置文件”。在下面的输出窗口中查看更详细的说明。
【解决方案3】:
您是否正在尝试运行调试版本?这可能会给您一个类似于 0xc0150002 的错误。尝试发布版本,或者您可以针对静态库而不是动态库进行编译。如果您在发布版本中遇到此问题,则很可能是缺少 dll(在这种情况下请尝试运行 Depends.exe)或不正确的清单。
如果您缺少对运行时 dll 的依赖项,您可以尝试为其创建一个部署项目,因为这将检测适当的运行时 dll 并将其构建到您的安装程序中。