首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

LoadLibrary()来加载libmysql.dll,为何还是提示异常框

2012-01-18 
LoadLibrary()来加载libmysql.dll,为何还是提示错误框?我现在是想满足一定条件的时候,才用LoadLibrary()加

LoadLibrary()来加载libmysql.dll,为何还是提示错误框?
我现在是想满足一定条件的时候,才用LoadLibrary()加载LIBMYSQL.DLL,一开始不用加载,但是一启动程序,就弹出找不到DLL的对话框了。

提示框内容:“没有找到LIBMYSQL.DLL,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题” 

我估计是和配置有关? 
和LoadLibrary()的路径关系不大吧?因为程序还没走到LoadLibrary(),一按F11就会弹出这个对话框,还没调用LoadLibrary()呢,连winmain()都没进入.

[解决办法]
把DLL相关的.lib和.h代码去掉
[解决办法]
在调用之前使用了库里面的接口
[解决办法]
既然用LoadLibrary,就是显示链接,不需要lib和h。隐式链接才需要,如果隐式链接,就不需要LoadLibrary。还有,确保LoadLibrary的dll路径正确
[解决办法]

探讨
在调用之前使用了库里面的接口

[解决办法]
LIBMYSQL.DLL可能回去调用其他的动态库。如果这些动态库没有的话,也会报类似的错。

你可以用VC的DEPENDENCE WALKER工具把LIBMYSQL.DLL打开看看。有没有显示找不到的DLL什么的
[解决办法]
如果你想用LoadLibrary显示方式调用你的dll话,在配置中就应该把.h和.lib文件去掉,然后自己还的重新写一个.h文件,在这个文件中把你要定义的函数指针形式定义出来,然后才能通过LoadLibrary形式加载dll调用。这样你就不然写一个封装类,在这个类中实现对dll的动态加载和函数封装。
[解决办法]
探讨
如果你想用LoadLibrary显示方式调用你的dll话,在配置中就应该把.h和.lib文件去掉,然后自己还的重新写一个.h文件,在这个文件中把你要定义的函数指针形式定义出来,然后才能通过LoadLibrary形式加载dll调用。这样你就不然写一个封装类,在这个类中实现对dll的动态加载和函数封装。

[解决办法]
LZ用了静态链接吧?

热点排行