第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

從 Python 調(diào)用 Go 字符串返回函數(shù)

從 Python 調(diào)用 Go 字符串返回函數(shù)

Go
忽然笑 2022-07-18 17:17:46
我試著叫這個(gè)// cryptography.gofunc getDecryptedMessage(message string, d int, prime1 int, prime2 int) *C.char {/////do something/////return C.CString("hello from go")}//app.pylib = cdll.LoadLibrary("./cryptography.so")class go_string(Structure): _fields_ = [ ("p", c_char_p), ("n", c_longlong)]lib.getDecryptedMessage.restype = c_char_pb = go_string(c_char_p(decryptedMsg), len(decryptedMsg))print (lib.getDecryptedMessage(b, c.d,c.prime1, c.prime2))它將打?。篵'hello from go'。結(jié)果應(yīng)該是:hello from go我用它建造它go build -buildmode=c-shared -o cryptography.so cryptography.go任何人都可以幫助我嗎?編輯:我認(rèn)為這一定有問(wèn)題lib.getDecryptedMessage.restype = c_char_p這是一個(gè)較小的版本://app.pyfrom flask import Flask, jsonifyfrom flask import abortfrom flask import make_responsefrom flask import requestfrom flask_cors import CORSfrom ctypes import *import ctypeslib = cdll.LoadLibrary("./a.so")lib.getMessage.restype = c_char_pprint(lib.getMessage())//a.gopackage mainimport "C"//export getMessagefunc getMessage() *C.char {    return C.CString("hello from go")}它會(huì)返回:b'hello from go'
查看完整描述

1 回答

?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

它將打?。?code>b'hello from go'。

這是完全正常的。C 字符串具有基于字節(jié)的類型。

在 Python 2 中,bytesstr類型是相同的,因此 Py2k 應(yīng)用程序?qū)?C 字符串視為字符串。在 Python 3 中,bytes類型與類型不同str。要將 a 轉(zhuǎn)換bytes為 a str,您必須根據(jù)其編碼對(duì)其進(jìn)行解碼。一般來(lái)說(shuō),您可能會(huì)考慮盡量避免對(duì)其進(jìn)行解碼,但如果必須對(duì)其進(jìn)行解碼,您必須告訴 Python 解碼器它是如何編碼的:

print(lib.getMessage().decode('utf-8'))

例如。(Go 本身使用 utf-8 編碼,但其他 C 項(xiàng)目可能不使用任何合理的編碼。)


查看完整回答
反對(duì) 回復(fù) 2022-07-18
  • 1 回答
  • 0 關(guān)注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)