delphi怎用调用vc动态连接库类中的函数?
delphi中调用vc编的dll
比如vc中给的接口定义为 void x(int d);
function Read(a: Integer;): Int;
但这两个函数都包含在某个自定义的类中,请问delphi该怎么调用?
还有在delphi中怎样取void x(int d);的入口地址呢?
还望各位大侠多多帮忙,菜鸟在此谢过!
[解决办法]
不要管vc中怎样实现,你只要看它导出的函数定义就可以了
[解决办法]
LoadLibrary
...
GetProcAddress
....
搜索一下论坛很多答案
[解决办法]
有相关资料 你参考下
VC中DLL声名格式:
Extern “C” void __declspec(dllexport) __stdcall ShowMess(HWND hwnd, char* mess);
输出格式为:_ShowMess@8,“8”为函数参数字节数
为了避免名称分裂,可采用以下方法解决:
1.声明中不加__stdcall,采用VC默认格式__cdecl,但在Delphi中要注明调用格式为cdecl。
2.在VC工程中添加def文件,如:
LIBRARY
EXPORTS
ShowMess @1
则DLL中输出函数名称不分裂。
Delphi中调用格式:
Procedure ShowMess (h:HWND; mess:PChar); Stdcall;{Cdecl;} external LibName;
如无Stdcall或Cdecl声名,Delphi默认Register(FastCall)调用格式。