无法定位程序输入点于链接库msvcrt.dll怎么办

 我来答
爱电脑sky
2016-08-27 · TA获得超过1万个赞
知道大有可为答主
回答量:1349
采纳率:0%
帮助的人:429万
展开全部

文件已上传

楼主你好,你可以重新下载一个msvcrt.dll文件,然后按如下步骤操作:

一、解压后直接拷贝该文件到系统目录里:

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

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

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

4、如果您的系统是64位的请将文件复制到C:\Windows\SysWOW64目录

二、打开"开始-运行-输入regsvr32 msvcrt.dll",回车即可解决。

已上传并提供下载连接,可根据需要下载。

msvcrt.dll下载地址:http://51dll.com/dll/file/?93.1.9069.htm


小技巧:如果无法进入桌面,可以启动安全模式或者使用PE启动电脑,然后修复。

【重要】:一定要选择与系统版本一致的DLL才可以




msvcrt.dll无法定位、丢失、找不到、加载失败 等问题的修复


匿名用户
2017-08-07
展开全部
今天同事在Windows XP系统上运行程序遇到这样一个错误:

我试了一下,在Win7上运行则没有这个错误。只是程序运行出错,代码编译是没有问题的。初步分析了一下,大致明白了问题了根源。问题的根源在于程序的exe或者其底层库链接了一个错误的msvcrt.dll。其实微软提供的VC运行时库是有很多版本的。为什么需要这么多的运行时库?原因很多,主要有下面两个:一是为了不同的处理器厂商和硬件架构,比如amd和intel,比如x86和x64等等;二是为了适配不同VS版本,比如VS2003、VS2005、VS2008等等,即使同是VS2008,VS2008和VS2008+sp1的运行时库都是不一样的。因此msvcrt.dll在xp系统和win7系统都是不一样的,具体到这个错误是_ftol2函数在xp系统和win7系统所处的函数地址是不一样的。

如上所述,要解决这个错误就必须找到到底哪个底层库链接了错误的msvcrt.dll。这次我采用的一个笨办法是使用depends打开exe程序,然后一个个地查找其依赖库,最后找到一个opengl32.dll,其视图如下:

从上图可以看出opengl32.dll所依赖的msvcrt.dll呈现红色警告,可以看出opengl32.dll所链接的msvcrt.dll并不对。后来我检查了一下,exe所在目录下有opengl32.dll,把它删掉后程序所用的应该是操作系统目录下的opengl32.dll,这样程序能顺利启动了。

单纯靠depends打开exe程序分析它的依赖库是否存在错误链接的问题这种做法效率无疑有点低,特点是当一个程序的依赖库特别多的时候。我想到的一个可以提高效率的做法是写一个程序通过获取exe的依赖库表,然后逐个进行动态加载(即调用LoadLibrary函数),一旦加载时出现无法定位程序输入点的错误,即可判断该库存在链接的错误。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式