Python Ctypes로 dll 파일 호출하기/생초짜

조회수 1908회

친구가 C언어로 계산 프로그램을 짰습니다.(계산기 프로그램은 아닙니다.) 계산은 C로 하고 그래픽 UI는 Python으로 꾸미고자 합니다. 일단 저는 친구의 C파일을 .dll파일로 변환했습니다. 이 파일을 Python에서 호출해서 쓰는 방법으로 Ctypes가 있다는걸 알고 .dll파일을 호출하고자 합니다. 인터넷에 있는 거의 모든 예제를 사용했지만 dll파일을 불러와 사용할 수 없었습니다. 파이썬 생초짜로 도움을 받고자 합니다. 또한 Cython?을 사용하라고 하시는 분들도 간혹 계시던데 C로 이미 코드를 다 짠 상태에서 C의 출력값만 받아서 Python 그래픽 프로그램에서 띄우고만 싶은데 어떤 방법이 있을지, 또 그 예제 또한 궁금합니다... ㅜ

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 닷넷 어셈블리는 네이티브 코드가 아닙니다.

    즉 cpython 에서 ctypes 모듈로 호출할 수 없습니다.

    cpython 에서 닷넷 어셈블리를 사용하고자 한다면 pythonnet(https://github.com/pythonnet/pythonnet) 을 검토하시기 바랍니다.

    또한 python 으로 gui 프로그래밍은 비주얼 스튜디오등의 툴을 활용할 수 있는 winform, wpf 에 비해서 상대적으로 생산성이 떨어집니다.

    python으로 gui 개발시 적합한 gui 빌더도 없고 배포시에도 까다롭습니다. 물론 qt degsiner 가 있기는 한데 비주얼 스튜디오에 비할바가 아닙니다.

    오히려 추천드리는 방식은 winform, wpf 로 gui를 개발하고 python을 임베디딩하여 비즈니스 로직을 구성하는 겁니다.

    물론 더 나아가서 3 tier 로 구성하고 python으로 api 서버를 개발(http)하고 닷넷으로 그 api 를 호출(소비)하는 구성이 더 좋습니다.

    • Cython 모듈을 통해 C파일을 읽어서 C파일에서 계산된 값들을 파이썬 GUI (tkinter나 qt degsiner)에서 표현?할 수 있나요? 알 수 없는 사용자 2019.4.2 12:46
    • 당연히 됩니다 정영훈 2019.4.2 18:02

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)