首頁 > 後端開發 > Golang > Golang能封裝成dll嗎

Golang能封裝成dll嗎

angryTom
發布: 2020-03-21 14:19:48
原創
4379 人瀏覽過

Golang能封裝成dll嗎

Golang能封裝成dll嗎

#Golang可以將程式編譯成DLL文件,具體做法如下:

1、golang 編譯dll 過程中需要用到gcc,所以先安裝MinGW。

windows 64 位元系統應下載MinGW 的64 位元版本:https://sourceforge.net/projects/mingw-w64/

2、下載後執行 mingw-w64-install.exe ,完成MingGW 的安裝。

(推薦學習:網站建立教學

3、先寫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 兩個檔案。

5、參考exportgo.h 檔案中的函數定義,撰寫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 放在同一目錄下,運行。

>importgo.exe
Hello World!
From DLL: Bye!
55
登入後複製

更多golang知識請關注PHP中文網golang教學欄位。

以上是Golang能封裝成dll嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板