vc++2008安装项目msvcrt.dll

vc++2008 installer project msvcrt.dll

本文关键字:dll msvcrt 项目 安装 vc++2008      更新时间:2023-10-16

你好,我的工作遵循系统。

Windows 7 ultimate sp1 x64。
Visual studio 9c++ sp1。
Directx SDK 9(我不知道我的指定版本。但它的版本高于2010年6月)。
Boost x86 1.47

和我的visual studio不是英文版的,所以我不能准确地写菜单或消息的名称。但意思几乎是一样的。

我的项目是3D游戏。
我使用visual studio的"installer project"安装我的项目
并包含每个包含的项目的依赖dll(使用visual studio的函数)
一切都很好。安装并运行测试成功。并且每个DLL都安装好了。(ex d3d9.dll)

当我在纯Windows xp sp3上测试时,install (setup.exe)是成功的。但是当我运行这个程序时,它输出了错误,没有执行。


错误对话框是:

过程入口point_except_handler4_common无法在动态链接库msvcrt.dll中找到。

(我的Windows xp不是英文的,但它几乎是正确的)

我又试了一次:
安装程序项目->"属性"->"先决条件…"->"选择要安装的先决条件:" ->在->"Visual c++ 2010 Runtime Libraries (x86) &.Net Framework 3.5 sp1 -> "指定先决条件的安装位置" -> "从组件供应商的网站下载先决条件"



输出是
installerproject。Msi
Vcredist_x86.exe
Setup.exe

 我尝试重新安装vcredist_x86并重新启动。客户端计算机(纯Windows xp3)也有同样的问题。谷歌说"msvcrt.dll引起了很多问题",但在我的发现列表中没有文章解决我的问题。他们说"没有通解"。
谁知道这个问题的解?为什么会出现这个问题呢?

请帮帮我。我很抱歉我的英语最短。这是我最好的英语技能

您可能希望将程序加载到XP机器上的Dependency Walker中,以查看试图链接到msvcrt的二进制文件。

msvcrt.dll是一个系统DLL,不是Visual c++ 2008(或2010 -不清楚你在使用哪个)运行时库的一部分。vc++ 2008的运行时DLL被命名为msvcr90.dll,所以我猜有一些间接依赖于msvcrt.dll。你需要弄清楚什么二进制文件试图使用msvcrt.dll的导出,并确定它是否与WinXP兼容,或者如何使其兼容。

请注意,由于msvcrt.dll是一个系统DLL,它在Windows的系统文件保护功能下,所以它通常不能更新/修改,除非通过服务包和系统更新。

仅供比较:

  • 一台运行WinXP SP3的机器有msvcrt.dll版本7.0.2600.5512 -它没有_except_handler4_common入口点。
  • 另一台运行Win7 SP1 x64的机器有32位msvcrt.dll版本7.0.7600.16385,并且它确实有入口点。