Hallo Go Lang und C# Gurus,C# DLL (Klassenbibliothek) Funktionen von Go Sprache
Guten Tag. Ich möchte fragen, ob jemand von Ihnen versucht hat, eine C# DLL-Funktionen (Class Library-Typ) aus einem Go-Programm aufrufen?
Ich habe einige erste Forschung gemacht und sah diese Artikel:
- https://github.com/golang/go/wiki/WindowsDLLs
- https://stackoverflow.com/questions/27849137/golang-call-windows-dll-functions
Aber das ist DLLs von C Win32-Implementierungen erstellt werden. Ich habe versucht, nach C# DLL zu suchen, die in Go-Programm geladen wird, alle von ihnen werden Ihnen sagen, dass Sie einen C++/C (Win32) -Wrapper haben müssen, bevor Sie es auf einem Go-Programm aufrufen können.
Plus, die Links oben werden Ihnen sagen, dass Go erwartet eine "C" -Deklaration denke ich (die vom Typ __declspec) oder dergleichen (z. B. WINAPI).
Gibt es einen Weg in diesem Fall, wo wir den C/C++ - Wrapper komplett überspringen und die C# DLL-Funktionen in Go direkt aufrufen können?
Ihre aufschlussreichen Ideen und Eingaben werden sehr geschätzt =)!
Dank
https://github.com/matiasinsaurral/go-dotnet – Gusman
Versuchen Sie, Objekte verfügbar zu machen oder nur bestimmte statische Funktionen? Was sind die Zugriffsmuster für den Code? Wie häufig muss es passieren? Könnten Sie in Erwägung ziehen, .NET anstelle von Go zu verwenden? Könnten Sie den C# -Code in eine EXE-Datei einfügen und sie einfach so verwenden (Sie könnten beispielsweise std in/out verwenden oder eine andere Kommunikation, um den C# -Code zu verwenden). – WiredPrairie
Hallo @ WiredPrairie, vielen Dank für Ihre Eingaben. Um Ihre Frage zu beantworten, erwäge ich, auf Objekte zuzugreifen, aber wenn nicht wahrscheinlich nur einfache Funktionen. Aber ich denke, da es C# ist, sollte es Objekte sein. Ich bin mir nicht sicher, ob ich es durch EXE enthüllen soll. Ich kann es nicht nur in reinem C# haben, weil es ein Übergangs-/Portierungsprojekt ist. Nochmals vielen Dank =)! –