首页  >  文章  >  后端开发  >  如何在没有 C /C 包装器的情况下从 Go 调用 C# DLL 函数?

如何在没有 C /C 包装器的情况下从 Go 调用 C# DLL 函数?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-22 00:06:16967浏览

How Can I Call C# DLL Functions from Go Without a C  /C Wrapper?

在没有 C /C 包装器的情况下从 Go 语言调用 C# DLL 函数

在本文中,我们将探索从Go 程序中的 C# DLL(类库类型),无需 C /C (Win32)包装器。

直接调用选项:

有两个主要选项可用于从 Go 直接调用 C# DLL 函数:

1 。 COM 互操作性(仅限 Windows):

  • 将 .NET DLL 转换为 COM 组件。
  • 利用 Go for Windows 中提供的 COM 互操作性功能,详细信息请参阅原始问题中提供的链接。

2。使用 C# 控制台应用程序包装:

  • 创建一个包装 DLL 的简单 C# 控制台应用程序。
  • 使用 os/exec 包从 Golang 调用控制台应用程序。

优点和缺点:

COM 互操作性:

  • 优点:

    • 原生COM 支持去吧。
  • 缺点:

    • 仅限于 Windows 操作系统。

C# 控制台应用程序包装器:

  • 优点:

    • 平台无关(如果 C# DLL 是跨平台的)。
    • 更容易实现,因为它只需要基本的 C#
  • 缺点:

    • 单独的额外开销

结论:

根据应用程序的具体要求,这两个选项都提供了直接调用 C# DLL 函数的方法来自没有 C /C 包装器的 Go。应根据平台兼容性、性能问题以及您自己对 C# 的熟练程度等因素做出选择。

以上是如何在没有 C /C 包装器的情况下从 Go 调用 C# DLL 函数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn