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

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

將字符串從 python 返回到 C++

將字符串從 python 返回到 C++

寶慕林4294392 2023-06-20 15:17:58
我的 python 代碼有返回字符串的方法。import urllib.requestimport sslimport suds.transport.httpfrom suds.client import Clientclass UnverifiedHttpsTransport(suds.transport.http.HttpTransport):  def __init__(self, *args, **kwargs):     super(UnverifiedHttpsTransport, self).__init__(*args, **kwargs)  def u2handlers(self):     handlers = super(UnverifiedHttpsTransport, self).u2handlers()     context = ssl.create_default_context()     context.check_hostname = False     context.verify_mode = ssl.CERT_NONE     handlers.append(urllib.request.HTTPSHandler(context=context))     return handlersurl="https://atictest.com/datamanagement.asmx?WSDL"client = Client(url, transport=UnverifiedHttpsTransport())def ReadDataTest():  result = client.service.ReadTestData()  return resultdef ReadGridData():  result = client.service.ReadGridData()    return resultdef main():  result=ReadGridData()  print(result)if __name__ == "__main__":  main() 如果調(diào)用 ReadDataTest() 方法,結(jié)果有 string {"Message":"You Have Successfully Connected"}。由于此 python 方法是從 C++ 調(diào)用的,因此我需要在 C++ 中解析 String 返回值。我試過pFunc_readtest = PyObject_GetAttrString(pModule, "ReadDataTest");if (pFunc_readtest && PyCallable_Check(pFunc_readtest)) {  pValue = PyObject_CallObject(pFunc_readtest, NULL);  if(pValue != NULL) {     std::string m_gettextFunction = PyObject_GetAttrString(pValue, "gettext");     printf("Result of call: %c\n", m_gettextFunction);     Py_DECREF(pValue);  }}但是我在編譯時出錯。如何從python接收字符串到C++?
查看完整描述

1 回答

?
智慧大石

TA貢獻1946條經(jīng)驗 獲得超3個贊

返回PyObject_GetAttrStringa PyObject *,正確處理它,這是代碼:


pFunc_readtest = PyObject_GetAttrString(pModule, "ReadDataTest");

if (pFunc_readtest && PyCallable_Check(pFunc_readtest)) {

    pValue = PyObject_CallObject(pFunc_readtest, NULL);

    if(pValue != NULL) {

        PyObject * res = PyObject_GetAttrString(pValue, "gettext");

        if (!PyUnicode_Check(res)) {

            // not a string, return error here

        }

        std::string m_gettextFunction = std::string(PyUnicode_AsUTF8(res));

        printf("Result of call: %c\n", m_gettextFunction);

        Py_DECREF(pValue);

    }

}

如果gettext是一個方法然后調(diào)用它,不要只是獲取它:


PyObject * res = PyObject_CallMethod(pValue, "gettext", NULL);


查看完整回答
反對 回復(fù) 2023-06-20
  • 1 回答
  • 0 關(guān)注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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