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

dll调用dll的有关问题,能够LoadLibrary,但GetProcAddress始终为空

2012-02-01 
dll调用dll的问题,能够LoadLibrary,但GetProcAddress始终为空我编一个dll调用另外一个dll始终有问题,代码

dll调用dll的问题,能够LoadLibrary,但GetProcAddress始终为空
我编一个dll调用另外一个dll始终有问题,代码如下:
我的dll的代码是

#define   DLL_IMPORT   extern   "C "   __declspec(dllimport)

DLL_IMPORT   HANDLE   open_file(   char   *);

typedef   HANDLE   (*openfile_bike)(char   *);
openfile_bike   _openfile_bike;
HINSTANCE   LoadBikeDllFunc()
{
hInstLibraryBike   =   LoadLibrary( "USB11_D12.dll ");//这一步能成功
return   hInstLibraryBike;
}
bool   AssociateBikeFunc()
{
_openfile_bike   =   (openfile_bike)GetProcAddress(hInstLibraryBike,   "open_file ");//这一步始终返回为空
if(_openfile_bike==NULL)
return   FALSE;
else  
return   TRUE;
}
其中USB11_D12.dll这个dll不知道其源码,只知道他的函数声明.大家帮帮我啊,有dll调用dll的例子也成啊....再次感谢大家...

[解决办法]
找个工具看下它的导出名先...
[解决办法]
dll调dll会有这种问题?我做APIHook的时候调用过,也是用GetProcAddress取得地址,一点问题没有。LZ的问题是不是出在别处?
下面的hInstLibraryBike值传到了没有,导出函数名没有C++改过确定是open_file么?

[解决办法]
估计是函数名称写错了。你使用VC自带的depends工具查看一下。
很多时候如果不注意,导出的函数会带上_abc这样的符号。
[解决办法]
用dumpbin导出dll的export信息
[解决办法]
还要注意函数调用约定是否一致
[解决办法]
_openfile_bike = (openfile_bike)GetProcAddress(hInstLibraryBike, "open_file ");//这一步始终返回为空
===============================
直接用空指针,不要用你使用的指向函数的指针,确保导出函数名字正确,应该可以成功调用。

热点排行