편집 기록

편집 기록
  • 프로필 편집요청빌런님의 편집
    날짜2020.04.16

    PyObject 포인터의 값 꺼내기.


        Py    _Initialize();
    
        PyRun_SimpleString("print ('hi')");
    
        PyObject* Module = PyUnicode_FromString((char*)"opc");
        PyObject* myModule = PyImport_Import(Module);
    
        PyObject* myFunction = PyObject_GetAttrString(myModule, (char*)"Now_analyzer_state");
    
        PyObject* p = PyObject_CallObject(myFunction, NULL);
    

    C++ 코드의 일부를 떼온 것입니다. (Now_analyzer_state라는 파이썬 함수는 단순 문자열 출력이 이루어 집니다.)

    맨 마지막 줄의 PyObject* p로 담은 p는 해당 파이썬 함수의 return값이 들어간 객체일 것 같은데

    어떤 방식으로 받아와야 C++에서 사용할 수 있는지 궁금합니다.

    포인터라고 생각해서 std::cout <<*p<< std::endl; 이렇게 하면 안 되더군요;

  • 프로필 반시님의 편집
    날짜2020.04.16

    PyObject 포인터의 값 꺼내기.


    
        Py_Initialize();
    
        PyRun_SimpleString("print ('hi')");
    
        PyObject* Module = PyUnicode_FromString((char*)"opc");
        PyObject* myModule = PyImport_Import(Module);
    
        PyObject* myFunction = PyObject_GetAttrString(myModule, (char*)"Now_analyzer_state");
    
        PyObject* p = PyObject_CallObject(myFunction, NULL);
        ```
    
    C++ 코드의 일부를 떼온 것입니다. (Now_analyzer_state라는 파이썬 함수는 단순 문자열 출력이 이루어 집니다.)
    
    맨 마지막 줄의 PyObject* p로 담은 p는 해당 파이썬 함수의 return값이 들어간 객체일 것 같은데
    
    어떤 방식으로 받아와야 C++에서 사용할 수 있는지 궁금합니다.
    
    포인터라고 생각해서 std::cout <<*p<< std::endl; 이렇게 하면 안 되더군요;