Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Golang CGO无法使用转换的字符串_C_Windows_Go_C Strings_Cgo - Fatal编程技术网

Golang CGO无法使用转换的字符串

Golang CGO无法使用转换的字符串,c,windows,go,c-strings,cgo,C,Windows,Go,C Strings,Cgo,我正在尝试使用CGO和Windows c标题设置Windows命令提示符的标题: // #include <windows.h> import "C" import "unsafe" func Title(title string) { ctitle := C.CString(title) defer C.free(unsafe.Pointer(ctitle)) C.SetConsoleTitle(ctitle) } 似乎C.SetConsoleTitle(ctitl

我正在尝试使用CGO和Windows c标题设置Windows命令提示符的标题:

// #include <windows.h>
import "C"
import "unsafe"

func Title(title string) {
  ctitle := C.CString(title)
  defer C.free(unsafe.Pointer(ctitle))
  C.SetConsoleTitle(ctitle)
}
似乎
C.SetConsoleTitle(ctitle)
需要类型为
*C.CHAR
的字符串,但是
C.CString(title)
返回
*C.CHAR


如何将字符串转换为预期类型?

我找到了一个解决方案,您可以将指针转换为
*C.CHAR

// #include <windows.h>
import "C"
import "unsafe"

func Title(title string) {
  ctitle := unsafe.Pointer(C.CString(title))
  defer C.free(ctitle)
  C.SetConsoleTitle((*C.CHAR)(ctitle))
}
/#包括
输入“C”
进口“不安全”
func标题(标题字符串){
ctitle:=不安全的指针(C.CString(标题))
延迟C.free(ctitle)
C.SetConsoleTitle((*C.CHAR)(ctitle))
}

尝试将
C.SetConsoleTitle(ctitle)
更改为
C.SetConsoleTitle(title.C_str())
@LPs,这似乎不可能
title.C_str未定义(类型字符串没有字段或方法C_str)
谢谢:)
// #include <windows.h>
import "C"
import "unsafe"

func Title(title string) {
  ctitle := unsafe.Pointer(C.CString(title))
  defer C.free(ctitle)
  C.SetConsoleTitle((*C.CHAR)(ctitle))
}