windows vc++2008安装工程msvcrt.dll

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/8530040/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 18:40:22  来源:igfitidea点击:

vc++2008 installer project msvcrt.dll

c++windowsvisual-studiodll

提问by user1101221

hello i working following system.?
?
windows 7 ultimate sp1 x64.?
visual studio 9 c++ sp1.?
directx sdk 9 (i dont know specified version of mine. but it's version is higher than june 2010).?
boost x86 1.47?
?

你好,我正在使用以下系统。?
?
Windows 7 Ultimate sp1 x64。?
Visual Studio 9 c++ sp1。?
directx sdk 9(我不知道我的指定版本。但它的版本高于 2010 年 6 月)。?
提升 x86 1.47?
?

and my visual studio is not english version, so i cant write the menu or message's name excaetly . but it's meaning is almost same.?
?

而且我的 Visual Studio 不是英文版,所以我不能特别写菜单或消息的名称。但它的意思几乎相同。?
?

my project is 3D game.?
i making the installer of my project using visual studio's 'installer project'?
and include every included project's dependency DLLs(using visual studio's function)?
everything is fine. the install and run test is success. and every dll is installed ok. (ex d3d9.dll)?
?
?when i tested it on a pure windows xp sp3, install (setup.exe) is success. but when i run this program, it outs error and don't executed.?
?

我的项目是 3D 游戏。?
我使用 Visual Studio 的“安装程序项目”制作我的项目的安装程序?
并包含每个包含的项目的依赖项 DLL(使用 Visual Studio 的功能)?
一切安好。安装和运行测试成功。并且每个dll都安装正常。(例如 d3d9.dll)?
?
?当我在纯 windows xp sp3 上测试时,安装 (setup.exe) 成功。但是当我运行这个程序时,它出现错误并且没有执行。?
?

?
the error dialog is that:?
?

?
错误对话框是:?
?

The procedure entry point_except_handler4_common could not be located in the dynamic link library msvcrt.dll. ?
?
(my windows xp is not english, but it almost right) ?
?
i tried next:?
?Installer Project --> "Properties" --> "Prerequisites.."?--> "Choose which prerequisites to install:" --> add check to -->"Visual C++ 2010 Runtime Libraries (x86) & .Net Framework 3.5 sp1 -->?"Specify the install location for prerequisites" -->?? ?"Download prerequisites from the component vendor's web site"?

在动态链接库 msvcrt.dll 中找不到过程入口 point_except_handler4_common。?
?
(我的 windows xp 不是英文,但几乎是对的)?
?
我试了下:?
?安装程序项目-->“属性”-->“先决条件..”?-->“选择要安装的先决条件:”-->添加检查-->“Visual C++ 2010运行时库(x86)和.Net Framework 3.5 sp1 -->?“指定先决条件的安装位置”-->?? ?“从组件供应商的网站下载先决条件”?

?
?
and the output is?
installerproject.msi?
vcredist_x86.exe?
setup.exe?
?
? i try reinstall vcredist_x86 and reboot. the client computer(pure windows xp3) is has same problem. and the Google says "the msvcrt.dll is caused many problems." but no article solve my problem in my found list. -and they says 'no general solution :( ?? ?
who knows solutions of this problem? and why this problem occur? ?
?
help me please. and i'm sorry my shortest English. that is my best english skill?

?
?
输出是?
安装程序项目.msi?
vcredist_x86.exe?
安装程序.exe?
?
? 我尝试重新安装 vcredist_x86 并重新启动。客户端计算机(纯 windows xp3)也有同样的问题。并且谷歌说“msvcrt.dll 引起了很多问题”。但在我的发现列表中没有文章解决我的问题。-和他们说“没有通用的解决方案:( ???
谁知道这个问题的解决方案?为什么这个问题会发生?

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

回答by Michael Burr

You may want to load your program into Dependency Walkeron the XP machine to see what binary is trying to link to msvcrt!_except_handler4_common.

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

msvcrt.dllis a system DLL and is not part of the Visual C++ 2008 (or 2010 - it's not clear which you're using) runtime libraries. VC++ 2008's runtime DLL is named msvcr90.dll, so I'd guess that there's some indirect dependency on msvcrt.dll. You'll need to figure out what binary is trying to use that export from msvcrt.dlland determine if it's even compatible with WinXP or how it can be made compatible.

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

Note that since msvcrt.dllis a system DLL, it's under Windows' system file protection feature so it generally cannot be updated/modified except by service packs and system updates.

请注意,由于msvcrt.dll是系统 DLL,因此它处于 Windows 的系统文件保护功能下,因此除服务包和系统更新外,它通常无法更新/修改。

Just for comparison:

仅供对比:

  • a machine running WinXP SP3 here has msvcrt.dllversion 7.0.2600.5512 - it does not have the _except_handler4_commonentry point.
  • another machine running Win7 SP1 x64 has a 32-bit msvcrt.dllversion 7.0.7600.16385, and it does have that entry point.
  • 这里运行 WinXP SP3 的机器msvcrt.dll版本为 7.0.2600.5512 - 它没有_except_handler4_common入口点。
  • 另一台运行 Win7 SP1 x64 的机器有一个 32 位msvcrt.dll版本 7.0.7600.16385,它确实有那个入口点。