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

delphi怎用调用vc动态连接库类中的函数?解决思路

2012-03-20 
delphi怎用调用vc动态连接库类中的函数?delphi中调用vc编的dll比如vc中给的接口定义为voidx(intd);functio

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

热点排行