猿问

cgo-如何将go字符串转换为LPCWSTR

我想使用一些Windows API,但是我不知道如何开始。有任何教程吗?


无论如何,我有一个简单的代码。您能帮我解决这个问题吗?


package mypackage

/*

#cgo LDFLAGS: -luser32

#include <windows.h>

*/

import "C"

import "unsafe"


func MessageBox(m string) {

      cm := C.CString(s)

      defer C.free(unsafe.Pointer(cm))

      C.MessageBoxA(C.HWND(nil), (*C.CHAR)(cm), C.LPCSTR(nil), 0) // It display a message.

}

编辑:我可以处理char *,但仍然不知道使用wchar_t *。


import "syscall"


func MessageBoxU(m string) {

        C.MessageBoxW(C.HWND(nil), (*C.WCHAR)(unsafe.Pointer(syscall.StringToUTF16Ptr(m))), C.LPCWSTR(nil), 0)

}

请让我知道这是否不是成语。


梵蒂冈之花
浏览 245回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答