cgo

编程入门 行业动态 更新时间:2024-10-21 05:44:47
cgo - 如何将go字符串转换为LPCWSTR(cgo - How to convert go string to 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) }

如果这不是成语,请告诉我。

I would like to use some of windows api, but I have no idea how to start. Is there any tutorial for it?

Anyway I have a simple code. Can you please help me to get this correct?

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. }

Edit: I can deal with char* but still do not know what with wchar_t*.

import "syscall" func MessageBoxU(m string) { C.MessageBoxW(C.HWND(nil), (*C.WCHAR)(unsafe.Pointer(syscall.StringToUTF16Ptr(m))), C.LPCWSTR(nil), 0) }

Please let me know if this is not go idiom.

最满意答案

以下是将Windows API打包为Go的两个项目:

github.com/antonlahti/go-winapi github.com/AllenDang/w32

一个用法示例:

func setWidgetText(hwnd HWND, text string) error { if TRUE != go-winapi.SendMessage(hwnd, WM_SETTEXT, 0, uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(text)))) { return newError("WM_SETTEXT failed") } return nil }

The following are two projects which wrap the Windows API to Go:

github.com/antonlahti/go-winapi github.com/AllenDang/w32

A usage example:

func setWidgetText(hwnd HWND, text string) error { if TRUE != go-winapi.SendMessage(hwnd, WM_SETTEXT, 0, uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(text)))) { return newError("WM_SETTEXT failed") } return nil }

更多推荐

本文发布于:2023-04-28 03:32:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1329778.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:cgo

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!