您好,登錄后才能下訂單哦!
Golang封裝成dll可以嗎?要怎么做?可能有的人對(duì)Golang并不陌生,或者從來(lái)沒(méi)有了解過(guò)Golang。但是不用擔(dān)心,今天小編會(huì)以最簡(jiǎn)單的描述來(lái)講解Golang的原理,告訴大家Golang如何封裝成dll。
Golang封裝成dll可以嗎?要怎么做
Golang可以將程序編譯成DLL文件,具體做法如下:
1、golang 編譯 dll 過(guò)程中需要用到 gcc,所以先安裝 MinGW。
windows 64 位系統(tǒng)應(yīng)下載 MinGW 的 64 位版本: https://sourceforge.net/projects/mingw-w64/
2、下載后運(yùn)行 mingw-w64-install.exe,完成 MingGW 的安裝。
3、首先撰寫(xiě) golang 程序 exportgo.go:
package main import "C" import "fmt" //export PrintBye func PrintBye() { fmt.Println("From DLL: Bye!") } //export Sum func Sum(a int, b int) int { return a + b; } func main() { // Need a main function to make CGO compile package as C shared library }
4、編譯成 DLL 文件:
go build -buildmode=c-shared -o exportgo.dll exportgo.go
編譯后得到 exportgo.dll 和 exportgo.h 兩個(gè)文件。
5、參考 exportgo.h 文件中的函數(shù)定義,撰寫(xiě) C# 文件 importgo.cs:
using System; using System.Runtime.InteropServices; namespace HelloWorld { class Hello { [DllImport("exportgo.dll", EntryPoint="PrintBye")] static extern void PrintBye(); [DllImport("exportgo.dll", EntryPoint="Sum")] static extern int Sum(int a, int b); static void Main() { Console.WriteLine("Hello World!"); PrintBye(); Console.WriteLine(Sum(33, 22)); }
編譯 CS 文件得到 exe
csc importgo.cs
將 exe 和 dll 放在同一目錄下,運(yùn)行。
>importgo.exe Hello World! From DLL: Bye! 55
以上就是Golang封裝成dll可以嗎?要怎么做的詳細(xì)內(nèi)容了,看完之后是否有所收獲呢?如果如果想了解更多,歡迎來(lái)億速云行業(yè)資訊!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。