在吗老师 无法定位程序流程图实例输入点HttpIsHostHstsEnabled于动态链接库

今天收到一个bug,说我们的产品在windows 2000的操作环境下无法正常安装运行,安装后弹出&无法定位程序输入点getaddrinfo于动态链接库WS32_32.dll上&的错误。 简单地在网上搜了一下,发现多个讨论和解决方案。
&& 该问题一般出现在用VC编译的程序在XP和2003上可以正常运行,2000下则报此错误,解决方法比较简单,分两种情况,一种是对于VC6或者VC6升级到VC8的工程,修改编译选项中的_WIN32_WINNT和WINVER为0x0500,另一种是直接用VC8创建的工程,StdAfx.h里面已经有了这两个变量的定义,所以需要替换所有StdAfx.h文件里面_WIN32_WINNT和WINVER两个宏的变量,修改其值为0x0500,再编译即可解决!
&& 使用静态连接 在编译开关里选择
方案三:&&&
应该说直接拷贝DLL是解决不了问题的。
DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于
13:24:07 得分 0
据我遇到的情况,是因为用到了getaddrinfo的的Unicode版本造成的(不管是直接还是间接),这个函数 (GetAddrInfoW),是Windows & XP & SP2才加上去的,低于XP & SP2的版本是无法用这个函数的,拷贝DLL也是不行的。需要改代码,然后再重新编译。
lixiaosan(小三)回复于
13:26:23 得分 50
http://support.microsoft.com/kb/822334/en-us
DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于
13:34:19 得分 50
是不是用到了GetAddrInfo,FreeAddrInfo,CSocketAddr这些XP才支持的东东,需要你检查代码了。
To resolve this problem, follow these steps:
Copy the Atlsocket.h file to any directory that you want to use. This file is located in the following directory:
Program Files/Microsoft Visual Studio .NET 2003/Vc7/atlmfc/include
Add the following block of code to the copy of the Atlsocket.h file that you created in step 1.
//Atlsocket.h
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "mswsock.lib")
//Start of Addition
#if _WIN32_WINNT & 0x0502
#define ADDRINFOT addrinfo
#define GetAddrInfo getaddrinfo
#define FreeAddrInfo freeaddrinfo
//End of Addition namespace ATL
Start Microsoft Visual C++.
On the Tools menu, click Options. In the left pane of the Options dialog box, expand Projects, and then click VC++ Directories.Note If you are using Visual C++ Express Edition, expand Projects and Solutions in the left pane of the Options dialog box, and then click VC++ Directories.
Under Show directories for, click Include files. Then, add the directory where the modified version of the Atlsocket.h file is located to the top of the list.
Rebuild you application
&但是我们代码没有使用&StdAfx.h并且已经是静态链接也不是一个ATL工程也就不能引用ATLBase.h,最后综合上面的解决方案和意见,改出了自己的版本。
将原有的#pragma comment(lib, "ws2_32.lib")改为了&
#pragma comment(lib, "ws2_32.lib")
//Start of Addition#if _WIN32_WINNT & 0x0502& #define ADDRINFOT addrinfo& #define GetAddrInfo getaddrinfo& #define FreeAddrInfo freeaddrinfo#endif问题经测试已解决。
阅读(...) 评论()无法定位程序输入点QueryFullProcessImageNameW于动态链接库KERNEL.DLL上
[问题点数:20分,结帖人firecityplans]
本版专家分:0
结帖率 78.33%
CSDN今日推荐
本版专家分:1782
本版专家分:0
本版专家分:16799
本版专家分:2871
本版专家分:2166
本版专家分:0
本版专家分:1782
本版专家分:60630
2011年10月 荣获微软MVP称号2010年10月 荣获微软MVP称号
2009年12月 VC/MFC大版内专家分月排行榜第一2009年11月 VC/MFC大版内专家分月排行榜第一2009年10月 VC/MFC大版内专家分月排行榜第一2009年9月 VC/MFC大版内专家分月排行榜第一
2009年8月 VC/MFC大版内专家分月排行榜第二
2010年1月 VC/MFC大版内专家分月排行榜第三
本版专家分:4
本版专家分:0
本版专家分:29844
2012年3月 VC/MFC大版内专家分月排行榜第三2012年1月 VC/MFC大版内专家分月排行榜第三
本版专家分:0
匿名用户不能发表回复!
其他相关推荐经过核实后将会做出处理,感谢您为社区和谐做出贡献。
请选择删除原因
确定推荐该回答?
VS2010没法定位程序于。。。。动态库msvcr110d.dll
无法定位、丢失msvcr110d.dll文件。需要先下载安装msvcr110d.dll,然后才能正常使用可以重新下载一个msvcr110d.dll文件,复制到c:\windows\system32文件夹【64位系统在C:\Windows\SysWOW64目录】,然后【开始-运行-输入regsvr32 msvcr110d.dll】即可。下载地址:msvcr110d.dll免费高速下载_DLL文件下载,DLL文件丢失,系统文件下载详细安装方法:VS2013 build的程序在xp上运行出现“无法定位程序输入点 _except_handler4_common 于动态链接库 msvcrt.dll
[问题点数:40分]
本版专家分:0
CSDN今日推荐
本版专家分:370297
2017年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第二
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
本版专家分:336
本版专家分:4933
本版专家分:0
本版专家分:0
本版专家分:4658
本版专家分:0
匿名用户不能发表回复!
其他相关推荐最近开始回过头来做一些视觉方面的工作。重新着手使用自己笔记本上配的工作环境。
工作环境:win7 32bit + vs2010 + opencv244
关于opencv的编译和配置,当时主要参考的是如下这篇博文。
http://www.cnblogs.com/freedomshe/archive//win7_vs2012_opencv_rebuild.html
----------------------------------
现在重新开始在vs环境下使用opencv,先用最简单的highgui函数熟悉下使用流程测试下库有没有问题。然后还真发现问题了。
1. debug下,库配置正确,运行正常无问题。
2. release下,库配置也正确,但是在生成完要运行时,出现问题:
第一反应是tbb.dll的路径配置不正确。于是查看系统设置下环境变量中的path项下是否正确输入了tbb.dll所在路径。查看后发现无误,而且确实应该无误,如果有错误的话那么debug版本的dll也会出现类似的问题。
然后尝试 把path路径下的tbb.dll文件拷贝至项目的可执行文件.exe所在的路径下,重新运行项目,发现运行成功了。
这下更奇怪了。感觉是默认运行的时候调用的tbb.dll文件不是我希望调用的版本。超出能力范围了,需要求助。
------------------------------------
1. 在stackoverflow上,找到了
其中提到,出现这种错误,很大可能是因为,在生成exe时所使用的lib文件的版本,和在运行exe时所调用的dll的版本不一致。
考虑到我在生成exe时使用的lib对应的dll文件确实存在,但没有得到正确的调用,所以必须了解exe文件在运行时寻找和调用dll文件的搜索路径。
2. 通过百度查找到该博文
文中阐明了可执行文件在运行时寻找和调用dll文件的路径搜索顺序。一般是:
A 可执行文件所在目录;B 进程当前目录;C 系统目录,%SystemRoot%/system32D 16位系统目录;,%SystemRoot%/systemE Windows目录,%SystemRoot%/F 环境变量PATH中的目录;
果不其然,我在自己电脑的C:\Windows\System32文件夹下发现了另外的tbb.dll。。。。不知道啥时候自带的呢,额,替换之或删除之,问题即可解决
3.通过2中的博文,可以看到利用filemon监视工具是个观察搜索路径顺序的不错工具
有空参见 ,今天受限于时间先略过。
4.如下两篇msdn上的资料帮我重新梳理了windows下动态链接库调用方面的知识,在此一并表示感谢
https://msdn.microsoft.com/zh-cn/library/253b8k2c.aspx
https://msdn.microsoft.com/zh-cn/library/7d83bc18.aspx
解决-运行程序无法定位程序输入点ucrtbase.abort于动态链接库api-ms-win-crt-runtime-|1-1-0.dll
这种情况多发生在这样的配置: win7+office2016 + (没装Microsoft Visual C++ 2015 Redistributable)
原因:win7下不兼容某些最新软件造成(...
The procedure entry point XXX could not be located in the dynamic link library XXX.dll
原因及分析:
此时由于.library和.dll文件版本不匹配造成的。比如.lib里有20个函数,.dll只有19个函数,当windows加载动态链接库的时候,它检查是否匹配,否则报错。
在项目需...
无法定位程序输入点 于动态链接库上
在vs2013上编译过了,但在vs2015上编译不过,感觉配置都是对的,仍然会发生这个问题,这时只需把相应的dll根exe文件放在同一目录下就可以了。以下是从http://blog.csdn.net/...
VS2010 无法定位程序输入点 gzdirect于动态链接库zlib1.dll上
无法定位程序输入点 gzdirect于动态链接库zlib1.dll上
VS2010程序前一天还运行正常,第二天运行的时候 突然报这个错误
去网上查找,好多人都说去C:\Windows\System...
win+VS2010+Qt 无法定位程序输入点 于动态链接库QtGuid4.dll问题
根据http://blog.sina.com.cn/s/blog_8d55cf0c01017kk1.html
1更改了环境变量,删除别的版本的Path
2.将lQtcore4.dll、Qtcore...
【VS】VS2012 无法定位程序输入点
C++/CLI的程序,用到了OCCI连接数据库,程序编译没问题,一运行就提示:无法定位程序输入点***于动态链接库oraocci12.dll上。
这个时候,需要先确定你的DLL文件已经放到正确的文件...
VS编译程序无法定位程序输入点的问题
今天看组里一个工程的代码,里面包含3个工程,一个编译成dll,一个编译成lib,一个编译成exe。于是心血来潮研究了一下程序的编译机制,我的目的就是想让编译出来的程序双击能够运行。 然后找了个qt的小...
Visual Studio无法定位于动态链接库
今天用vs开发ffmpeg突然冒出一个这样的错误
由于程序用到了 avcodec 和 avutil 这两个库,而 av_frame_alloc是属于 avutil这个库的。
以下通过查...
解决“无法定位程序输入点ucrtbase.terminate于动态链接库api-ms-win-crt-runtime-|1-1-0.dll“问题
在安装软件时,出现了“无法定位程序输入点ucrtbase.terminate于动态链接库api-ms-win-crt-runtime-|1-1-0.dll“问题。怎么解决呢?百度了一下,解决流程如下:...
mysql5.7安装过程中出现的错误--无法定位程序输入点 于动态链接库
在mysql5.7安装过程中 会碰到报无法定位程序输入点 于动态链接库的错误 如图所示:
经网上查阅,是为服务器中木马,解决传送门:
http://pcedu.pconline.com.c...
没有更多推荐了,

我要回帖

更多关于 c语言程序100例 的文章

 

随机推荐