cookieo9/goffi - GitHubWindows であれば CGO を使わずとも、もともと Windows API には LoadLibrary、GetProcAddress という物が用意されており、Go言語にもその wrapper が提供されています。
Go FFI (and dlopen) packages to wrap C libraries. This code is not being actively d...
https://github.com/cookieo9/goffi
package main
import (
    "log"
    "syscall"
    "unsafe"
)
func main() {
    dll, err := syscall.LoadDLL("user32.dll")
    if err != nil {
        log.Fatal(err)
    }
    defer dll.Release()
    proc, err := dll.FindProc("MessageBoxW")
    if err != nil {
        log.Fatal(err)
    }
    proc.Call(0,
        uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr("メッセージ"))),
        uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr("ボックス"))),
        0)
}
便利ですね。![]()