初级会员
  • 第 68112 位会员
  • HideMyMemory
  • 2021-07-03 12:58:05
  • Offline
  • 19 87

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 以下是go语言代码 ```go //export ReadScFile func ReadScFile(pFilePath *C.char) *C.char { sFilePath := C.GoString(pFilePath) sFileText := ReadBinaryFile(sFilePath) pReturnString := C.CString(*sFileText) return pReturnString } //打开sc文件 func ReadBinaryFile(sFilePath string) *string { pFileHandle, sError := os.Open(sFilePath) if sError != nil { fmt.Println(sError) } // 当函数执行到最后时,defer语句会按照逆序执行,返回该函数 defer pFileHandle.Close() // 拼接后的字符串 var sFileText string arBuff := make([]byte, 1024) // 字符串总长度 var iWholeLen int // 相当于python的while True for { // 读取的长度,读取时报错的内容 iReadLen, err := pFileHandle.Read(arBuff) iWholeLen += iReadLen sBuff := string(arBuff) sFileText += sBuff if (err == io.EOF) || (iReadLen < 0) { break } } return &sFileText } ``` 以下是python3代码: ```python from ctypes import cdll, c_char_p, c_wchar_p pTransfer = cdll.LoadLibrary(r"D:\go\pkg\transfer_param.so") pTransfer.Concat.argtypes = [c_char_p, c_char_p] pTransfer.Concat.restype = c_char_p s_file_path = r"D:\test_file.log" c_file_path = s_file_path.encode("utf-8") # 赋值传参类型 pTransfer.ReadScFile.argtypes = [c_char_p] # 赋值返回值类型 pTransfer.ReadScFile.restype = c_char_p # 读取cs文件的内容 s_recive_address = pTransfer.ReadScFile(c_file_path) # 此处只能输出 250 多个字节 print(f"s_recive_address = {s_recive_address}") ```