您好,我的工作遵循以下系统。
windows 7旗舰版sp1 x64。
visual studio 9 c++ SP1..“
directx sdk 9(我不知道我的具体版本。但其版本高于2010年6月).
提升x86 1.47%
而且我的visual studio不是英文版的,所以我不能写菜单或者消息的名字。但它的意思几乎是一样的。
我的项目是3D游戏。
我使用visual studio的'installer project‘制作我的项目的安装程序。
并包含每个包含的项目的依赖DLL(使用visual studio的函数)。
百事大吉。安装和运行测试成功。每个dll都安装好了。(例如d3d9.dll)
*当我在纯windows xp sp3上测试时,安装(setup.exe)是成功的。但是当我运行这个程序时,它输出了错误并且没有执行。
错误对话框为:
在动态链接库msvcrt.dll中找不到过程条目point_except_handler4_common。3.
(我的windows xp不是英语,但几乎是正确的)。
我下一步尝试了:
安装程序项目-->“属性”-->“必备组件..”-->“选择要安装的必备组件:”-->添加检查到-->"Visual C++ 2010运行时库(x86) & .Net框架3.5 sp1 -->“”指定系统必备组件的安装位置“-->”从组件供应商的网站下载必备组件“。
输出结果是:
installerproject.msi
vcredist_x86.exe
setup.exe
我尝试重新安装vcredist_x86并重新启动。客户端计算机(纯windows xp3)也存在相同问题。谷歌说:“msvcrt.dll造成了很多问题。”但在我找到的列表中没有一篇文章能解决我的问题。他们说-and没有通用的解决方案:( *)
谁知道这个问题的解决方案?为什么会出现这个问题?
请帮帮我。我很抱歉我最短小的英语。那是我最好的英语技能。
发布于 2011-12-16 13:53:49
您可能希望将程序加载到XP机器上的Dependency Walker中,以查看尝试链接到msvcrt!_except_handler4_common的二进制文件。
msvcrt.dll是一个系统动态链接库,并不是Visual C++ 2008 (或2010 -不清楚您使用的是哪个)运行时库的一部分。VC++ 2008的运行时动态链接库被命名为msvcr90.dll,所以我猜在msvcrt.dll上有一些间接的依赖。您需要找出哪个二进制文件正在尝试使用从msvcrt.dll导出的内容,并确定它是否与WinXP兼容,或者如何使其兼容。
请注意,由于msvcrt.dll是一个系统动态链接库,它处于Windows的系统文件保护功能之下,因此通常不能对其进行更新/修改,除非通过服务包和系统更新。
仅供比较:
msvcrt.dll版本7.0.2600.5512 -它没有_except_handler4_common entry point.msvcrt.dll版本7.0.7600.16385,但它确实具有该入口点。https://stackoverflow.com/questions/8530040
复制相似问题