首页主机msvcrt.dll(什么是msvcrtdll)

msvcrt.dll(什么是msvcrtdll)

编程之家2024-06-12260次浏览

一、计算机提示丢失msvcrt.dll

出现这个提示,就是表示你缺失这个文件

msvcrt.dll(什么是msvcrtdll)

msvcrt.dll(名称:Microsoft C Runtime Library)提供了printf,malloc,strcpy等C语言库函数,并且为使用C/C++(Vc)编绎的程序提供了初始化(如获取命令行参数)以及退出等功能.

可以用腾讯电脑管家修复下。打开电脑管家——电脑诊所——软件问题——缺少dll文件。

如果不行,那就只有去网上下载了,(注意安全哈,扫描下)

去搜:vc2010,下载装上就好了

第一个就是多特,记得分清你的系统是64位还是32位的,64位的就装x64,32位的就装x86的那个文件

直接拷贝该文件到系统目录里:

msvcrt.dll(什么是msvcrtdll)

1、Windows 95/98/Me系统,则复制到C:\Windows\System\目录下。

2、Windows NT/2000系统,则复制到C:\WINNT\System32\目录下。

3、Windows XP系统,则复制到C:\Windows\System32\目录下。

程序的话,尝试使用兼容模式和管理员权限运行游戏试试,操作:程序上→属性→兼容性→勾选上使用管理员权限运行同时使用xp sp3的兼容模式。

二、出现msvcrt.dll 什么意思

出现这个提示情况是:Windows Xp系统;软件包括:window live writer 2009, windows messenger 2009, firefox 3.5等非常新的版本。

这个提示出现后,点击确定,并不影响程序的使用。这个问题出现的原因,其实微软自己的问题。可谓是微软的Vista后遗症吧。

msvcrt.dll(什么是msvcrtdll)

在 Vista系统里,有个挺酷的功能,就是“程序缩略图”,有点3D效果,这个功能,调用了 dwmapi.dll这个库,而 dwmapi.dll又引用了 msvcrt.dll中的 _except_handler4_common功能。

然而,在XP系统中,系统自带的 msvcrt.dll和 Vista中的 msvcrt.dll版本不同,并没有这个 _except_handler4_common,结果就出现了启动程序时,遇到的“无法定位程序输入点_except_handler4_common于动态链接库msvcrt.dll上”的错误提示。

解决方法:

将 c:\windows\system32下的 dwmapi.dll改名,例如:改为 dwmapi.dll.bak。

望采纳。不懂再问、

三、msvcrt.dll的产生原因

某些外文软件在安装后会引起系统的崩溃,这对于在国外工作学习又使用中文系统的朋友们通常意味着一场灾难,下面的文字以飞信的一个经典BUG为例,剖析这种现象产生的原因以及解决方法。

首先,我们让该问题重现,即双击飞信客户端的桌面图标,让其弹出该错误对话框。错误提示出现了,我们先不急着点击“OK(确定)”按钮,而是启动一个调试程序。(本例中使用著名的Microsoft Windbg工具进行调试分析)然后在“File(文件)”菜单中选择“Attach to a Process...(附加到一个进程)”。这里之所以要选择Attach to a Process就是因为我们要将调试器跟踪到当前这个产生错误的进程,然后从内存中实时察看相关的线程堆栈甚至API函数的调用。Windbg中还支持其他的几种类型的调试,须根据具体情形按需选择。附加到该进程之后的结果如下图所示:

然后,我们可以在图中清晰地看到,当系统加载到“dll”时挂起,就是图中的Warning: Break-in time out, suspending.,在Windows中的表现也就是弹出了上述的错误对话框,并且我们还没有点击“确定”按钮,于是程序暂时挂起。因此,我们可以判断,启动时加载的dll在执行某个函数过程的时候遇到了错误。那么究竟是什么样的函数呢?根据错误对话框的信息,我们可以初步猜测是MSVCRT.dll中的_except_handler4_common。于是,我们需要查找一下当前进程中有关该过程的现状,所以执行x msvcrt!_except_handler*命令,返回的结果也在上图中的底部。在Windbg中,x是查找符号的命令,可以用来查找全局变量的地址或过程的地址。比如x kernel32!*显示Kernel32.dll中的所有可见变量,数据结构和过程。*号是通配符,代替任意的字符串,为了查找全部的,我们需要使用该通配符。(其实如果你执行“x msvcrt!_except_handler4_common”你会发现没有任何结果,也就是找不到,其实这也就是出现该错误的原因,我们后文分析。因此退一步不输入4_common,查找所有_except_handler过程)

结果告诉我们,进程中msvcrt.dll存有的过程有_except_handler2以及_except_handler3,而恰恰没有_except_handler4。鉴于以上返回结果,我们可以初步断定,错误的起因是因为程序不能执行MSVCRT.DLL中的_except_handler4_common过程,而且原因是当前缺少这个。此时,我们需要借助Microsoft Dependency Walker进行辅助分析并且确认。

我们启动Microsoft Dependency Walker,打开该dwmapi.dll,可以发现,该DLL文件的运行将会首先调用MSVCRT.DLL,而且下图中也标示出来了,在当前调用的MSVCRT.DLL中,缺少一个函数_except_handler4_common,这起好与我们看到的错误现象相以及Windbg分析的结果吻合。如下图所示:

此时,我们可以进一步断定,要么是DLL版本不对,要么就是dwmapi.dll有问题。而这个程序调用的是XP系统的systemroot.system32下面的MSVCRT.DLL,那么我们猜想,是不是Vista版本下的MSVCRT.DLL就存在一个新版本——即第4版的_exception_handler4呢?我们从Microsoft Windows Vista RTM中提取出位于systemroot.system32下面的MSVCRT.DLL,其版本为“7.0.6001.18000(longhorn_rtm.080118-1840)”,然后再次使用Dependency Walker打开,发现其中果然存在该新的函数!即“_except_handler4_common”。如下图所示:

到这里,问题就已经清楚了。正是由于本机的在启动时调用了用于Vista的DLL组件dwmapi.dll,而该DLL又要尝试调用一个Vista下msvcrt.dll才有的过程,才出现了该错误提示。因为我们发现,该错误提示并不影响之后程序的正常使用,而且我们所使用的环境是Windows XP而非Vista,所以推断该调用dwmapi.dll的过程是非必要的,于是将其重命名或是删除到回收站,再次启动,迎来的是程序正常的使用……之后我查阅了大量的KB资料以及Visual Studio的MSDN资料,发现_except_handler是VC++编译器自带的一个内部异常处理。而版本4的_except_handler4_common handler又仅存在于Vista以及之后的系统之中。而且值得注意的是,很多这样子的错误都是由于系统中存在有来自更高级版本系统的文件造成的,而文件的来源于一般有几种,一般是修改系统时自己放进去的或者别的安装程序带入的,也有情况是盗版改版的操作系统中存有的,再有就是本例中的情形——安装程序可同时用于Windows XP以及Windows Vista。可能是由于XP英文版与中文版的环境的不同,加载调用为Vista准备的dwmapi.dll从而产生了此错误。

注:本例中并没有介绍使用Dependency Walker的“Profile(剖析)”功能,因为该启动不是靠单文件的,因此比较复杂,而且本例中因为该错误不能成功剖析整个启动过程,剖析过后同样能够发现问题。

诺基亚主题(诺基亚e63主题可以在哪里下载呢)killer网卡(killer网卡)