小编典典

从Go语言调用的C#DLL(类库)函数

go

您好Go Lang和C#专家,

美好的一天。我想问你们是否有人尝试过Go程序调用C#DLL函数(类库类型)?

我进行了一些初步研究,并看到了以下文章:

- https://github.com/golang/go/wiki/WindowsDLLs
- https://stackoverflow.com/questions/27849137/golang-call-windows-dll-functions

但是这些都是从C Win32实现中创建的DLL。我尝试搜索加载到Go程序中的C#DLL,所有这些都会告诉您在Go程序上调用它之前,您需要具有C ++ /
C(Win32)包装器。

另外,上面的链接将告诉您Go认为我认为是“ C”声明(类型为__declspec)或类似代码(例如WINAPI)。

在这种情况下,有没有一种方法可以完全跳过C / C ++包装器并直接在Go中调用C#DLL函数?

您的启发性想法和建议将不胜感激=)!

谢谢


阅读 1376

收藏
2020-07-02

共1个答案

小编典典

选项1
把你的.NET的DLL到像COM组件这个,那么你可以从golang的步骤,重新调用它,你的第一个环节。请记住,此选项仅适用于Windows。

选项2 将DLL包装在一个简单的C#控制台应用程序中,然后使用os /
exec
在golang中调用该应用程序。如果您的C#DLL是跨平台的,那么您的最终程序仍然是跨平台的。

这两个选项都需要C#的基本知识,要么创建COM组件,要么编写控制台应用程序以调用DLL。IMO后者更容易。

2020-07-02