读书人

delphi怎用调用vc动态连接库类中的函数

发布时间: 2012-03-20 14:01:11 作者: rapoo

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)调用格式。

读书人网 >.NET

热点推荐