如何将在rad studio中创建的C ++ DLL转换为在C#中使用的b

时间:2016-06-09 23:55:05

标签: c++ .net visual-c++ c++builder

我需要在我的.Net服务中使用第三方代码/ dll。我做了一些研究。但我找不到任何直接的答案。大多数建议使用包装类将代码移植到VS C ++ .net中。同时,由于使用了VCL标头,因此在VS C ++中没有替代品。有人可以指导我吗?

正在使用的VCL文件是:Classes.hpp,Sockets.hpp和ExtCtrls.hpp

提前致谢。

1 个答案:

答案 0 :(得分:3)

用C ++ Builder编写的DLL在C#提供的中工作正常,DLL导出扁平的C风格函数,这些函数使用基本的互操作数据类型和可在多个编译器中移植的调用约定。或者DLL实现COM对象(因为COM具有标准化的ABI)。这与编写可用于多种语言的任何DLL没有什么不同,包括Delphi,VB,Java,Perl,PHP等。

您无法直接在DLL的公共接口中使用VCL标头,因为VCL无法移植到非Delphi / C ++ Builder编译器。但是你可以将VCL代码隐藏在可移植的抽象层之后。