如何实现Delphi与VC++之间的函数共享
编号:QA002454
建立日期: 2000年1月18日 最后修改日期:2000年1月18日
所属类别:
tzx:
编程工具: Delphi,VC++
操作系统: windows9x,NT
问题:如何实现Delphi与VC++之间的函数共享,即PASCAL与C语言之间如何定义函数接口,如何调用。
回答:
你可以使用VC++编写DLL供Delphi调用,或者反过来。直接链接.obj是不行的,因为两者的格式不同。
VC++和Delphi都支持Pascal和C语言两种调用协定。
如果使用Pascal协定,VC++的函数定义前要加_stdcall修饰(stdcall是Windows的标准调用方式,可以在所有支持API调用的语言中使用),并且需要在.DEF文件中的EXPORTS端中加入函数名。参考QA000072 "VB和VC混合编程"。在Delphi定义时要在函数名后加stdcall修饰(参见帮助)。
如果使用C协定,VC++的函数定义前要加__declspec(dllexport)修饰,不需要再修改.DEF文件了。在Delphi定义时要在函数名后加cdecl修饰(参见帮助)。
此问题由李海回答。
| |
|
|
| |
|
|