您的位置:首页 > 编程语言 > Delphi

VC6动态调用DELPHI DLL

2005-08-25 10:17 393 查看
最近由于一些业务接口问题,和对方公司一个很牛的Man一起搞业务移植,他DELPHI偶VC,最后商订由他搞底层协议封装成DLL,我来调用,他DLL文件中声明为STDCALL,调用的方法和掉VC自己的DLL,有些不同。
步骤:
1.用VC6的工具Depends打开DLL,看DLL其中的函数信息,原型,接入点等。
2.声明一个指向DLL函数其中的函数指针。
如:
typedef int(*tMsgBox)(); //声明MSGBOX的函数指针
3.声明并取加载的动态链接库的句柄
HINSTANCE hDLL;
hDLL=LoadLibrary("d:\\linux\\aaa\\TestDll.dll"); //加载动态链接库MyDll.dll文件;
4.实例化函数指针
tMsgBox pMsgBox;
5.把已经实例化的函数指针指向DLL中的函数
pMsgBox = GetProcAddress(hDLL,"MsgBox"); //GetProcAddress中的第二个参数可以是函数在DLL中的序号
6.调用函数
pMsgBox();
7.从内存中卸载动态库
FreeLibrary(hDLL);

到这里动态调用就完成了,DLL库里函数多的话按序号调用可能会出问题,还是应该用函数名来调用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: