c# - 为什么我宁愿使用 native dll 或 com 服务器从 C# 调用 Delphi 代码?

标签 c# delphi dll com interop

我们即将编写一个 C# 网络服务,该服务将公开包含在 native Delphi GUI 应用程序中的功能。为什么我会选择将 Delphi 代码包装在 native dll 中,为什么我想将它包装在 COM 服务器中?换句话说:在选择一个而不是另一个时,我需要考虑哪些因素?我对编码、调试、(自动化)测试、部署(在客户处安装)和性能(开销?)方面的因素感兴趣。

最佳答案

COM 相对于普通 DLL 增加了一些显着的优势:

  • 支持 OOP(类、接口(interface))
  • 字符串(BSTR)、数组和对象(通过接口(interface))的自动内存管理
  • 无需在 .NET 端使用平台调用

所以我会选择 COM。

要使用 DLL 在 .NET 中使用 Delphi 类,您必须在 Delphi 端扁平化该类,然后在 .NET 端重新包装它,这有点难看。

Rudy 的许多关于 Delphi 和 C++ 代码的文章也适用于 C#:

http://rvelthuis.de/articles/articles-cppobjs.html

关于c# - 为什么我宁愿使用 native dll 或 com 服务器从 C# 调用 Delphi 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18353033/

相关文章:

c# - 扩展原始类型

c# - 在 IsNullOrEmpty 参数中连接字符串

delphi - 在 ImgView32 图层上绘制粗虚线

delphi - 为什么TToolBar不想换行?

德尔福/Tesseract OCR : Can somebody help me get this new DLL working in Delphi?

c++ - 使用静态库编译 C++/SDL?

c# - 从代码隐藏中删除 asp.net 控件

delphi - 如何快速删除列表框中的重复项?

java - 如何使用 JNI 使用 java 程序运行 c 程序

c# - 我想根据从 ASP.NET Core 6 的 API 收到的 XML 字符串创建 docx 文件