VS2017写的exe调用Delphi 7写的DLL

Posted foo__hack

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2017写的exe调用Delphi 7写的DLL相关的知识,希望对你有一定的参考价值。

公司有个很古老的系统,代码量很大,都是Delphi 7写的,要重写是不可能的。因为Delphi 7编译出来的DLL默认的导出符号就是二进制稳定的C符号。

所以,理论上任何语言都可以调用该DLL导出的API。

值得注意的是,在调用导出API的时候任何语言都是利用LoadLlibrary,GetProcAddress的原理来进行调用的。

调用该API的输入输出参数最好要是平坦内存结构,比如C语言类型的结构体,注意结构体字段与Delphi的导出的结构体的字段长度对应一致。

如果是C#,最后用Marshal相关的函数对参数对象进行转换成平台内存结构来做输入输出,这样才能保证不出错。

 

以上是关于VS2017写的exe调用Delphi 7写的DLL的主要内容,如果未能解决你的问题,请参考以下文章

Delphi7程序调用C#写的DLL解决办法(转)

delphi可以嵌入exe吗

现在的delphi xe7写的程序还能被反编译吗

delphi调用VC写的Dll报错

如何有delphi5调用webservice,别人写的webservice?

请问我用Delphi写的ISAPI的WEBSERVICE,调试时怎么看SOAP报文?