应用程序无法正确初始化(0xc0150002)

时间:2009-08-05 04:45:17

标签: windows visual-studio visual-c++ visual-studio-2005

我在运行于Windows Server 2000 sp4上的visual studio 5中创建的mfc应用程序,我为它创建了一个版本并尝试运行它win xp slp2。它让我的应用程序无法正确初始化(0xc0150002)

我尝试过以下事情 - 安装Microsoft Visual C ++ 2005 SP1可再发行组件包(x86),即发布文件夹中的一个,以及可从网站下载的一个 从microsoft visual sutdio \ vc \ redist

复制了所有dll和mainfest

我仍然收到同样的消息。 ç

可能出现什么问题?如何解决?

3 个答案:

答案 0 :(得分:0)

要检查的一些事情:

  • 检查项目的/ SUBSYSTEM链接器选项。它可能包括操作系统主要/次要版本号。
  • 确保您在DEV计算机上使用适当的Windows XP PlatformSDK;检查WINVER,_WIN32_WINNT
  • 的值
  • 使用依赖来查看问题是否在未解决的依赖项中
  • 检查应用程序所需的运行时版本与目标计算机上的版本。我通常通过从一侧查看应用程序的清单并从另一端查看目标计算机的WinSxS文件夹来执行此操作(最近有来自Microsoft http://msdn.microsoft.com/en-us/visualc/ee309358.aspx的ATL安全更新;由更新的Visual Studio创建的新二进制文件将无法运行在没有相同更新版本的运行时的计算机上。)

答案 1 :(得分:0)

您可能已对VS2005 SP1应用了安全更新或编译器更新。这使得它生成一个清单,请求与使用Microsoft Visual C ++ 2005 SP1可再发行组件包(x86)安装的MFC / CRT-dll不同的MFC / CRT-dll。

尝试使用Depends.exe并打开您的应用程序,然后在菜单中选择“配置文件”。请查看下面的输出窗口以获取更详细的说明。

答案 2 :(得分:0)

您是否尝试运行调试版本?这可能会给你一个类似于0xc0150002的错误。尝试发布版本,或者您可以针对静态库而不是动态库进行编译。如果你在发布版本上遇到这个问题,那么它很可能是一个丢失的dll(在这种情况下尝试运行Depends.exe)或不正确的清单。

如果您对运行时dll缺少依赖关系,则可以尝试为其创建部署项目,因为这将检测相应的运行时dll并将其构建到安装程序中。