有一段C++代码,怎么用go去调用者两个函数成功运行?(50元奖励,先到先得!)

golangking · · 963 次点击
jan-bar
想要拥有,必定付出。
所有win32api都可以在这些库里面找找,如果找不到,可以看看里面的实现,自己写一个,很简单 ```go import ( "github.com/lxn/win" "golang.org/x/sys/windows" ) ``` 下面这个是我自己扩展的一些我常用的win32api ```go import "github.com/jan-bar/golibs" ``` 当然使用CGO通过go调用c或c++也是一个路子,不过用来调用win32api就略显多余咯
#4
更多评论
大佬们,帮我解决一下!
#1
两种方式,第一种自己封装,第二种调用golang.org/x/sys/windows ```go import ( "syscall" "unsafe" "golang.org/x/sys/windows" ) const ( ERROR_ALREADY_EXISTS = 183 ) var ( kernel32 = syscall.NewLazyDLL("kernel32.dll") procCreateMutex = kernel32.NewProc("CreateMutexW") ) func createMutex(name string) (uintptr, error) { ret, _, err := procCreateMutex.Call( 0, 0, uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(name))), ) switch int(err.(syscall.Errno)) { case 0: return ret, nil default: return ret, err } } func createMutexSys(name string) (windows.Handle, error) { return windows.CreateMutex(nil, true, syscall.StringToUTF16Ptr(m)) } ```
#2