C++ 如何获得C++;在rad studio中创建的DLL到C中使用的b#

C++ 如何获得C++;在rad studio中创建的DLL到C中使用的b#,c++,.net,visual-c++,c++builder,C++,.net,Visual C++,C++builder,我需要在.Net服务中使用第三方代码/dll。我做了一些调查。但我找不到任何直接的答案。主要推荐使用包装类将代码导入VS C++网络。同时,由于VCL头使用了VS C++中没有替换的标题。有人能给我介绍一下吗 正在使用的VCL文件有:Classes.hpp、Sockets.hpp和ExtCtrls.hpp 提前感谢。用C++Builder编写的DLL在C#中运行良好,前提是该DLL导出使用基本互操作安全数据类型和调用约定的平面C风格函数,这些函数可以跨多个编译器移植。或者DLL实现COM对象(因

我需要在.Net服务中使用第三方代码/dll。我做了一些调查。但我找不到任何直接的答案。主要推荐使用包装类将代码导入VS C++网络。同时,由于VCL头使用了VS C++中没有替换的标题。有人能给我介绍一下吗

正在使用的VCL文件有:Classes.hpp、Sockets.hpp和ExtCtrls.hpp


提前感谢。

用C++Builder编写的DLL在C#中运行良好,前提是该DLL导出使用基本互操作安全数据类型和调用约定的平面C风格函数,这些函数可以跨多个编译器移植。或者DLL实现COM对象(因为COM具有标准化的ABI)。这与编写任何可以用多种语言(包括Delphi、VB、Java、Perl、PHP等)使用的DLL无异


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

用C++Builder编写的DLL在C#中工作得很好,前提是该DLL导出使用基本互操作安全数据类型和调用约定的平面C风格函数,这些函数可以跨多个编译器移植。或者DLL实现COM对象(因为COM具有标准化的ABI)。这与编写任何可以用多种语言(包括Delphi、VB、Java、Perl、PHP等)使用的DLL无异


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

请确保您了解,服务是在非交互式会话中运行的。如果您的库使用VCL中的可视组件(例如ExtCtrls),则这听起来不正确。您不能使用从服务使用GUI的库。它只是使用ExtCtrls中的TTimer作为处理器。不涉及GUI。请确保您了解,服务在非交互式会话中运行。如果您的库使用VCL中的可视组件(例如ExtCtrls),则这听起来不正确。您不能使用从服务使用GUI的库。它只是使用ExtCtrls中的TTimer作为处理器。没有涉及GUI。