1 回答

TA貢獻(xiàn)1829條經(jīng)驗 獲得超9個贊
如上所述,libtorrent-go開發(fā)人員回答了我,因此出于后代原因,我轉(zhuǎn)發(fā)了答案。
SWIG-Golang 文檔中記錄了使用 SWIG 庫在 Golang 中轉(zhuǎn)換 C++ 結(jié)構(gòu)。
特別是在本聲明中:
給定接口類型的值,Go 代碼可以通過調(diào)用 Swigcptr 方法檢索指向 C++ 類型的指針。這將返回 SwigcptrClassName 類型的值,它只是 uintptr 的名稱。Go 類型轉(zhuǎn)換可用于將此值轉(zhuǎn)換為不同的 C++ 類型,但請注意,此轉(zhuǎn)換不會進(jìn)行類型檢查,并且本質(zhì)上等同于 reinterpret_cast。這應(yīng)該僅用于非常特殊的情況,例如 C++ 將使用 dynamic_cast 的情況。
在我上面發(fā)布的那段特定代碼中,以下是使其工作所必需的:
case "save_resume_data_alert":
log.Println("Wrote Metadata!")
// need to actually write the resume_data :( can't find how
SaveRDAlert := lt.SwigcptrSave_resume_data_alert(alert.Swigcptr())
log.Printf("Resume Data: %#v", SaveRDAlert.GetResume_data())
- 1 回答
- 0 關(guān)注
- 211 瀏覽
添加回答
舉報