社区
C++ 语言
帖子详情
loadlibrary()失败的问题?
wydr_061111036
2011-06-10 11:20:15
问题如下,请各位大虾帮忙看看,是什么问题导致的,谢谢!
我们公司产品更新,需要替换一些DLL文件,可是我在原来的工程里面调用loadlibrary()导入这些DLL文件时失败。而我自己重新写一个.EXE文件调用LOADLIBRARY()来导入这些DLL文件有成功。
不知道怎么回事请各位大虾帮忙看看,跪求答案啊!
谢谢啊!
...全文
534
18
打赏
收藏
loadlibrary()失败的问题?
问题如下,请各位大虾帮忙看看,是什么问题导致的,谢谢! 我们公司产品更新,需要替换一些DLL文件,可是我在原来的工程里面调用loadlibrary()导入这些DLL文件时失败。而我自己重新写一个.EXE文件调用LOADLIBRARY()来导入这些DLL文件有成功。 不知道怎么回事请各位大虾帮忙看看,跪求答案啊! 谢谢啊!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gaomingok
2011-06-14
打赏
举报
回复
一般情况下如果是使用debug模式,dll文件需要放在工程文件所在目录
设置当前工作目录使用SetCurrentDirectory(),具体用法可以google
wydr_061111036
2011-06-13
打赏
举报
回复
[Quote=引用 16 楼 gaomingok 的回复:]
主程序和DLL不在一个目录中?
如果是这样,在loadlibrary()前就需要设置当前工作目录为DLL目录
[/Quote]主程序和DLL在同一个目录中,第二点没明白,能写个代码段给个例子不咯,谢谢!
gaomingok
2011-06-11
打赏
举报
回复
主程序和DLL不在一个目录中?
如果是这样,在loadlibrary()前就需要设置当前工作目录为DLL目录
c_losed
2011-06-10
打赏
举报
回复
[Quote=引用 3 楼 wydr_061111036 的回复:]
引用 1 楼 bdmh 的回复:
getlasterror看看失败原因,是不是路径问题
用GetLastError()查错代码是“127”表示没有找到指定的程序。可是我以前的也是这样直接导入的啊,并且成功。这次只是简单的覆盖替换而已。路径的话应该也没有错。很费解。
[/Quote]
写绝对路径测试下
wydr_061111036
2011-06-10
打赏
举报
回复
[Quote=引用 2 楼 kevin_perkins 的回复:]
用LoadLibraryEx试试看.
[/Quote]恩 下午,试试!唉!着急啊!
wydr_061111036
2011-06-10
打赏
举报
回复
[Quote=引用 1 楼 bdmh 的回复:]
getlasterror看看失败原因,是不是路径问题
[/Quote]用GetLastError()查错代码是“127”表示没有找到指定的程序。可是我以前的也是这样直接导入的啊,并且成功。这次只是简单的覆盖替换而已。路径的话应该也没有错。很费解。
Kevin_Perkins
2011-06-10
打赏
举报
回复
用LoadLibraryEx试试看.
bdmh
2011-06-10
打赏
举报
回复
getlasterror看看失败原因,是不是路径问题
wydr_061111036
2011-06-10
打赏
举报
回复
[Quote=引用 13 楼 zj510 的回复:]
其实你可以debug一下,LoadLibrary()会调用DLL的dllmain()函数,你可以跟你的DLL的dllmain函数,如果dllmian()返回FALSE的话,Loadlibrary就失败了。
[/Quote]这个还真么弄明白你的意思,貌似我跟不进去。能给段代码看看么,谢谢!
JaneThink
2011-06-10
打赏
举报
回复
关注,加学习
zj510
2011-06-10
打赏
举报
回复
其实你可以debug一下,LoadLibrary()会调用DLL的dllmain()函数,你可以跟你的DLL的dllmain函数,如果dllmian()返回FALSE的话,Loadlibrary就失败了。
wydr_061111036
2011-06-10
打赏
举报
回复
谢谢各位的答案,该问题已经解决啦,我把这个loadlibrary()加载dll的过程放到InitInstance的最前端就能够成功啦,具体的原因还在分析过剩中,之后我会把错误的原因在发布一下啊,再次感谢各位珍贵的意见。谢谢!!
wydr_061111036
2011-06-10
打赏
举报
回复
[Quote=引用 8 楼 luciferisnotsatan 的回复:]
ERROR_PROC_NOT_FOUND
127 The specified procedure could not be found.
用depends看看,那dll依赖的库是否都能找到
[/Quote]所有依赖项都已经满足。我也是用的DEPENDS查看的。谢谢!
na2650945
2011-06-10
打赏
举报
回复
[Quote=引用 8 楼 luciferisnotsatan 的回复:]
ERROR_PROC_NOT_FOUND
127 The specified procedure could not be found.
用depends看看,那dll依赖的库是否都能找到
[/Quote]
这个是正解。
看看吧。
sdlsa10000
2011-06-10
打赏
举报
回复
八成是因为dll依赖的dll没有找到。前天刚遇到这样的问题,把dll copy过去就ok啦
luciferisnotsatan
2011-06-10
打赏
举报
回复
ERROR_PROC_NOT_FOUND
127 The specified procedure could not be found.
用depends看看,那dll依赖的库是否都能找到
ouyh12345
2011-06-10
打赏
举报
回复
依赖是否满足?
wydr_061111036
2011-06-10
打赏
举报
回复
[Quote=引用 4 楼 wydr_061111036 的回复:]
引用 2 楼 kevin_perkins 的回复:
用LoadLibraryEx试试看.
恩 下午,试试!唉!着急啊!
[/Quote]写了绝对路径也是错误的,因为这个DLL文件还有依赖项。我把他们都放在一起。同一个能够定位到的目录下。
安卓加载so卡死
问题
复现
某些低版本智能电视盒子系统上,APP调用System.
load
Library
会导致卡死的现象,经过定位为gnustl的
问题
,该示例可以稳定复现出
问题
new_test.zip_Getprocadress_
Load
Library
_get dress的用法
load
library
和GetProcadress的用法,动态加载函数,使用函数钩子
load
library
:将Windows动态链接库移植到Linux
load
library
:将Windows动态链接库移植到Linux
ActiveX控件注册的几种方法
ActiveX控件注册的几种方法使用Regsvr32.exe程序 对ActiveX控件进行注册
VB控件FlshTray.ocx
FlshTray.ocx 用于保存,以备以后查找困难。有需要的可以下了
C++ 语言
64,849
社区成员
250,501
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章