您好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函数?
您的启发性想法和建议将不胜感激=)!
谢谢
选项1 把你的.NET的DLL到像COM组件这个,那么你可以从golang的步骤,重新调用它,你的第一个环节。请记住,此选项仅适用于Windows。
选项2 将DLL包装在一个简单的C#控制台应用程序中,然后使用os / exec在golang中调用该应用程序。如果您的C#DLL是跨平台的,那么您的最终程序仍然是跨平台的。
这两个选项都需要C#的基本知识,要么创建COM组件,要么编写控制台应用程序以调用DLL。IMO后者更容易。