社区
C++ 语言
帖子详情
loadlibrary()失败的问题?
wydr_061111036
2011-06-10 11:20:15
问题如下,请各位大虾帮忙看看,是什么问题导致的,谢谢!
我们公司产品更新,需要替换一些DLL文件,可是我在原来的工程里面调用loadlibrary()导入这些DLL文件时失败。而我自己重新写一个.EXE文件调用LOADLIBRARY()来导入这些DLL文件有成功。
不知道怎么回事请各位大虾帮忙看看,跪求答案啊!
谢谢啊!
...全文
541
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文件还有依赖项。我把他们都放在一起。同一个能够定位到的目录下。
android安卓源码解析-Sytem.
load
Library
.pdf
如果指定的路径是sdcard上的,则加载会
失败
。如果需要加载sdcard中的so文件,需要先将其复制到应用的本地存储路径下。 3. 库文件的加载顺序:
load
Library
()在加载.so文件时,首先会检查应用本地路径下的库文件是否...
安卓加载so卡死
问题
复现
2. 分析日志:使用`adb logcat`收集设备上的日志,寻找可能的错误信息,例如找不到符号、内存分配
失败
等。 3. 验证依赖:确认所有依赖的.so库都已正确加载,没有缺失或版本冲突。 4. 调整JNI代码:检查C++代码是否有...
new_test.zip_Getprocadress_
Load
Library
_get dress的用法
在Windows API中,`
Load
Library
`和`GetProcAddress`是两个重要的函数,用于实现动态链接库(DLL)的加载和函数地址获取。`Get_Dress`的用法可能是指获取特定函数地址的过程,它通常与`GetProcAddress`一起使用。下面...
load
library
:将Windows动态链接库移植到Linux
`
Load
Library
`返回NULL表示
失败
,而在Linux中,`dlopen`返回NULL或设置`errno`。因此,需要适配错误处理逻辑,例如检查`dlopen`的返回值并处理`dlerror`。 5. **函数查找** 在Windows中,使用`GetProcAddress`...
VB控件FlshTray.ocx
FlshTray.ocx 用于保存,以备以后查找困难。有需要的可以下了
C++ 语言
65,019
社区成员
250,539
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章