亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 Go 中讀取 C 類型字符串

從 Go 中讀取 C 類型字符串

Go
冉冉說 2021-07-04 16:47:02
我正在嘗試用 Go 編寫一個簡單的 OpenGL 應用程序,并想從驅動程序中讀取 OpenGL 版本。我正在使用這個功能:http://godoc.org/github.com/chsc/gogl/gl21#GetString這是一個包裝函數const GLubyte* glGetString( GLenum name);這段代碼:fmt.Println(gl.GetString(gl.RENDERER))fmt.Println(*gl.GetString(gl.VERSION))產出0x4708ae050輸出可能是一個 C 類型的字符串,指向字符串第一個字節的指針。如何將 GetString 函數的輸出轉換為普通的 go 字符串?解決方案:該包提供了正確的轉換器功能,只是不是很明顯:fmt.Println( gl.GoStringUb( gl.GetString( gl.RENDERER )))一般方法:(如果包不提供 *Ubyte 到字符串轉換功能)pointer := unsafe.Pointer(gl.GetString(gl.RENDERER))str := C.GoString( (*C.char)(pointer) )fmt.Println(str)
查看完整描述

1 回答

?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

您鏈接的包提供了一個可以解決問題的函數GoStringUb

render := gl.GoStringUb(gl.GetString(gl.RENDERER))
version := gl.GoStringUb(gl.GetString(gl.VERSION))


查看完整回答
反對 回復 2021-07-19
  • 1 回答
  • 0 關注
  • 284 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號