Python Ctypes를 통한 C++ 호출
조회수 855회
안녕하세요 C++파일의 main() 함수를 ctypes로 가져와 c_main()이란 이름으로 Tkinter 모듈로 표현하고자 합니다. cmd창에 뜨는 내용을 Tkinter로 만든 scrolledtext box안에 넣고싶은데 return만 반환되고 (C++파일 main함수 마지막엔 return 0; ) cmd창 내용은 안들어가네요. cmd창에 printf로 표현한 내용을 넣고싶은데 어떻게 방법이 없을까요?
추가)) 혹시
extern "C" __declspec(dllexport)
int file(int a, int b)
{
return a + b
}
같은 방법처럼 main함수에도 a,b처럼 인수? 변수?를 입력값으로 줄 수 있는 방법은 없을까요?
`
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
https://stackoverflow.com/questions/665566/redirect-command-line-results-to-a-tkinter-gui
subprocess 를 통해서 외부실행파일을 실행시키고, 그 출력을 파이프로 받아서 tk 창에 뿌려주는 방식이 가장 간단할 겁니다.
단, 출력에 한글이 포함되어 있기 때문에, 인코딩에 주의해야 합니다. 우선 출력에서 한글을 빼고, 영문으로 바꿔서 테스트하시고, 인코딩 관련해선 나중에 고민하길 권합니다.
dll 을 만들고, 함수를 실행시키는 방식을 고수하고 싶다면, 함수가 현재 출력되는 내용을 반환해 주는 방식으로 함수를 변경해야 할 겁니다. 이렇게 하는 방식이 문자인코딩 처리에는 더 간단할 수도 있습니다.
댓글 입력