调用 Win32 API,很多接口都是 wchar_t *
字符串,如何转换为 go 的 string
?
给一个例子
package main
// #define WIN32_LEAN_AND_MEAN
// #include <windows.h>
import "C"
import "syscall"
import "fmt"
func GetCurrentDirectory() string {
if bufLen := C.GetCurrentDirectoryW(0, nil); bufLen != 0 {
buf := make([]uint16, bufLen)
if bufLen := C.GetCurrentDirectoryW(bufLen, (*C.WCHAR)(&buf[0])); bufLen != 0 {
return syscall.UTF16ToString(buf)
}
}
return ""
}
func main() {
fmt.Printf("cur dir %s\n", GetCurrentDirectory())
return
}
请用安装了TDM-GCC安装包