首页 > 怎么把 wchar_t * 转换为 string?

怎么把 wchar_t * 转换为 string?

调用 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安装包

【热门文章】
【热门文章】