无法定位程序输入点到_ftol2于动态链接库msvcrt.dll的错误的解决
作者:朱金灿
来源:http://blog.csdn.net/clever101
今天同事在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函数),一旦加载时出现无法定位程序输入点的错误,即可判断该库存在链接的错误。
无法定位程序输入点到_ftol2于动态链接库msvcrt.dll的错误的解决的更多相关文章
- 无法定位程序输入点 _glutCreateWindowWithExit于动态链接库glut32.dll上
程序运行提示错误"无法定位程序输入点 _glutCreateWindowWithExit于动态链接库glut32.dll上",网上查了说是opengl的.lib和.dll版本过低, ...
- VS2010 + winxp 无法定位程序输入点GetTickCount64 在动态链接库kernel32.dll上 错误
winxp系统,使用VS2010, 在使用boost中的thread中的sleep的时候出现 “无法定位程序输入点GetTickCount64 在动态链接库kernel32.dll上”的错误, 在网上 ...
- 无法定位程序输入点_except_handler4_common于动态链接库msvcrt.dll
这是由于sp3加载的驱动造成的:只需要将C:\WINDOWS\system32\dwmapi.dll重新命名一下即可以解决. 可以调试程序当系统加载到“c:\Program Files\China M ...
- 无法定位程序输入点到xxx.dll
Q:安装pytorch时报错无法定位程序输入点到Anaconda3\Library\bin\libssl-1_1-x64.dll A:下载libssl-1_1-x64.dll覆盖bin下的文件 下载地 ...
- XP下 无法定位程序输入点WSAPoll于动态链接库ws2_32.dll 的解决办法
最近在给手机启用黑阈服务的时候出现了无法定位程序输入点WSAPoll于动态链接库ws2_32.dll这个错误,上网查了一下是因为SDK Platform Tools版本过高不能兼容windows xp ...
- 安装postman时遇到“无法定位程序输入点 SetDefaultDllDirectories于动态链接库KERNEL32.dll 上.”的问题
安装postman时遇到“无法定位程序输入点 SetDefaultDllDirectories于动态链接库KERNEL32.dll 上.”的问题 解决办法: 1.安装系统更新补丁KB2533623,下 ...
- [qt][问题记录] 无法定位程序输入点 _ZdaPvj 于动态链接库 libstdc++-6.dll
无法定位程序输入点 _ZdaPvj 于动态链接库 libstdc++-6.dll 该问题是没有打包库的问题,之所以出现这个问题的是直接用系统自带的命令行使用qt的windeployqt命令导致提供的库 ...
- opengl 无法定位程序输入点_glutInitWithExit于动态链接库glut32.dll上
1.问题:opengl 无法定位程序输入点_glutInitWithExit于动态链接库glut32.dll上 2.环境:vc6.0 win7,64位,opengl. 3.解决:将glut32.dl ...
- 关于“无法定位程序输入点gzdirect于动态链接库zlib1.dll”的问题
费劲N多力气编译通过之后,最后启动程序过程中却突然得到“无法定位程序输入点gzdirect于动态链接库zlib1.dll”的问题, 分析究其原因是定位不到zlib1.dll,都知道,程序在找dll的时 ...
随机推荐
- 【WIP】客户端JavaScript 事件处理
创建: 2017/10/15 完成: 2017/10/15 更新: 2017/11/04 加粗事件的参数 更新: 2017/12/12 增加事件处理时获取事件对象的方法 更新: 2019/05/2 ...
- 目标检测的图像特征提取之_LBP特征
LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子:它具有旋转不变性和灰度不变性等显著的优点.它是首先由T. Ojala, M.Pietikäinen ...
- luogup3834(主席树模板)
luogup3834(主席树模板) 给定由N个正整数构成的序列,将对于指定的闭区间查询m次其区间内第k小值.1≤N,M≤2e5. 有一个做法,是对于每个序列的前缀建一颗权值线段树,然后通过权值线段树相 ...
- 讲完.class,Class之后,继续。
讲完.class,Class之后,继续. 1)泛化的Class引用 Class也可以加入泛型,加入之后会进行类型检查. 贴一下书上原话,Class<?>优于Class,虽然他们是等价的,C ...
- CTS/APIO2019游记
退役后游记... 这次是真·游记了 ghj1222自从省选翻车后心情一直不错 5.12 (CTS 报到) 没去thupc(话说都不知道thupc这时候举行),于是就这天从衡水出发了 翻来覆去睡不着觉, ...
- MySQL服务器变量:MySQL系列之八
注意:其中有些参数支持运行时修改,会立即生效:有些参数不支持,且只能通过修改配置文件,并重启服务器程序生效:有些参数作用域是全局的,且不可改变:有些可以为每个用户提供单独(会话)的设置 一.服务器选项 ...
- 如何使用JMETER从JSON响应中提取数据
如果你在这里,可能是因为你需要使用JMeter从Json响应中提取变量. 好消息!您正在掌握掌握JMeter Json Extractor的权威指南.作为Rest API测试指南的补充,您将学习掌握J ...
- EcmaScript学习
1.eval: ts: declare function eval(x: string): any; js: /** @param {*} x @return {Object} */ eval = f ...
- urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>
解决办法: import ssl # 在请求之前加上 ssl._create_default_https_context = ssl._create_unverified_context
- codeforces round 472(DIV2)D Riverside Curio题解(思维题)
题目传送门:http://codeforces.com/contest/957/problem/D 题意大致是这样的:有一个水池,每天都有一个水位(一个整数).每天都会在这一天的水位上划线(如果这个水 ...