비슷한 질문이 있지만이 문제를 해결하기위한 노력이 성공적이지 못했습니다. 파이썬 인터프리터 I/O를 리다이렉트하고 싶지만, stdout을 리다이렉션하는데 성공했다. stdin과 stderr에는 여전히 문제가 있습니다. Redirect Embedded Python IO to a console created with AllocConsole을 바탕으로 내가이 짓을 :AllocConsole Win32 응용 프로그램으로 만든 콘솔에 임베디드 Python IO 리디렉션
PyObject* sys = PyImport_ImportModule("sys");
PyObject* pystdout = PyFile_FromString("CONOUT$", "wt");
if (-1 == PyObject_SetAttrString(sys, "stdout", pystdout)) {
/* raise errors and wail very loud */
}
PyObject* pystdin = PyFile_FromString("CONIN$", "rb");
if (-1 == PyObject_SetAttrString(sys, "stdin", pystdin)) {
/* raise errors and wail very loud */
}
//cout << "no error" << endl;
Py_DECREF(sys);
Py_DECREF(pystdout);
Py_DECREF(pystdin);
을 그리고 테스트 목적을 위해 간단한 스크립트가 있습니다
내 스크립트는 첫 번째 인쇄를 실행print 'Hello'
guess = int(raw_input('Take a guess: '))
print quess
콘솔에 쇼입니다. 두 번째 및 세 번째 명령은 전혀 표시되지 않습니다. 그래서, 대신 출력 :
Hello
Take a guess: "my guess"
"my guess"
난 단지
Hello
내가 어떤 도움을 주셔서 감사합니다 것 가지고 파이썬 C API를 사용하여 해결 될 필요가있다. 감사합니다. .