#TDBcpp2go:解决TDB中接口用Go语言调用的问题
tmpPtr := uintptr(unsafe.Pointer(pCode))//已有pCode*数组
sizeOf := unsafe.Sizeof(*pCode)
pC := (*C.TDBDefine_Code)(unsafe.Pointer(tmpPtr))
fmt.Println("-------------code table ----------------------------");
fmt.Printf("chWindCode:%s \n", pC.chCode);
fmt.Printf("chWindCode:%s \n", pC.chMarket);
fmt.Printf("chWindCode:%s \n", pC.chCNName);
fmt.Printf("chWindCode:%s \n", pC.chENName);
fmt.Printf("chWindCode:%s \n", pC.nType);
tmpPtr += sizeOf
解答来源于http://studygolang.com/topics/594
settings_bytes1 := []byte("114.80.154.34")
for i:=0; i<len(settings_bytes1); i++{
settings.szIP[i]=C.char(settings_bytes1[i])
}
l := unsafe.Sizeof(*pTransaction)
buf := (*[1024]byte)(unsafe.Pointer(pTransaction))
var transaction Define_Transaction
binary.Read(bytes.NewBuffer(buf[0:32]), binary.LittleEndian, &transaction.chWindCode)
binary.Read(bytes.NewBuffer(buf[32:64]), binary.LittleEndian, &transaction.chCode)
binary.Read(bytes.NewBuffer(buf[64:68]), binary.LittleEndian, &transaction.nDate)
binary.Read(bytes.NewBuffer(buf[68:72]), binary.LittleEndian, &transaction.nTime)
binary.Read(bytes.NewBuffer(buf[72:76]), binary.LittleEndian, &transaction.nIndex)
binary.Read(bytes.NewBuffer(buf[76:77]), binary.LittleEndian, &transaction.chFunctionCode)
binary.Read(bytes.NewBuffer(buf[77:78]), binary.LittleEndian, &transaction.chOrderKind)
binary.Read(bytes.NewBuffer(buf[78:79]), binary.LittleEndian, &transaction.chBSFlag)
binary.Read(bytes.NewBuffer(buf[79:83]), binary.LittleEndian, &transaction.nTradePrice)
binary.Read(bytes.NewBuffer(buf[83:87]), binary.LittleEndian, &transaction.nTradeVolume)
binary.Read(bytes.NewBuffer(buf[87:91]), binary.LittleEndian, &transaction.nAskOrder)
binary.Read(bytes.NewBuffer(buf[91:95]), binary.LittleEndian, &transaction.nBidOrder)
fmt.Println(transaction)