vc ++ 2008安装程序项目msvcrt.dll

时间:2011-12-16 05:09:05

标签: c++ windows visual-studio dll

你好我按照系统工作。

windows 7 ultimate sp1 x64。
visual studio 9 c ++ sp1。
directx sdk 9(我不知道我的指定版本。但它的版本高于2010年6月)。
提升x86 1.47

我的视觉工作室不是英文版,所以我不能简单地写下菜单或信息的名字。但它的含义几乎相同。

我的项目是3D游戏。
我使用visual studio的'安装项目'制作项目的安装程序 并包括每个包含的项目的依赖DLL(使用visual studio的功能)
一切都好。安装和运行测试成功。并且每个dll都安装好了。 (ex d3d9.dll)

当我在纯Windows xp sp3上测试它时,安装(setup.exe)成功。但是当我运行这个程序时,它会出错并且不会执行。


错误对话框是:

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

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

我接下来试了一下:
安装程序项目 - &gt; “属性” - &gt; “先决条件..” - &GT; “选择要安装的先决条件:” - &gt;添加检查到 - &gt;“Visual C ++ 2010运行时库(x86)和.Net Framework 3.5 sp1 - &gt;”指定先决条件的安装位置“ - &gt;”从组件供应商的网站下载先决条件“< / p>



输出是
installerproject.msi
选择vcredist_x64.exe
SETUP.EXE

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

请帮帮我。对不起我最短的英语。这是我最好的英语技能

1 个答案:

答案 0 :(得分:1)

您可能希望将程序加载到XP计算机上的Dependency Walker,以查看二进制文件尝试链接到msvcrt!_except_handler4_common。

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,它确实有这个入口点。