Oggi vediamo come usare una dll con golang.
Precisamente in questo post vedremo come utilizzare la funzione MessageBox in User32.dll.
Con le api di mamma Microsoft ci sono due tipi di versione una versione ANSI(MessageBoxA) e una versione Unicode(MessageBoxW)
Dopo una piccola descrizione ora passiamo al codice
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
package main //Includo le librerie import ( "log" "syscall" "unsafe" ) func main() { //Carico la libreria di sistema user32.dll dll, err := syscall.LoadDLL("user32.dll") //Controllo se tutto è andato bene if err != nil { log.Fatal(err) } defer dll.Release() //Creo il mio MessageBox proc, err := dll.FindProc("MessageBoxW") //MessageBoxW e la versione unicode //Controllo se tutto è andato bene if err != nil { log.Fatal(err) } //Chiamo la mia MessageBox proc.Call(0, uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr("Descrizione del errore"))), uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr("Errore Titolo"))), 0) } |