타인이 작성한 DLL 파일을 어떻게 쓰십니까?

조회수 2342회

부끄럽지만, 허접이라서 뭐 모릅니다;DLL도 근래에서야 다루기 시작해서;;;

일단은 속도를 위해서 C로 dll을 만들어서, ctype로 파이썬에 올려다 쓰는 데는 성공했습니다. 다만 이 과정에서 DLL 내의 함수의 정확한 이름들과 구현형태를 전부 다 사전에 알고 있어야 쓸 수 있었습니다.

또한, C DLL을 C에서 불러와 컴파일 하기 위해서는 DLL은 실행할 때만 필요하고, 컴파일할때는 lib파일과 그 DLL의 헤더파일이 필요했었습니다.

헤더파일은..... DLL의 구현을 읽어오기 위해서인거 같으니, 생략 가능할꺼 같기도 한데, 잘 모르겠습니다.

문제는 이런 DLL은 자신이 쓰기 위해서 보다는 남이 만든 DLL을 쓸 일이 더 많을텐데, 그때마다 남이 정확하게 기술한 DLL에 관한 문서가 있지 않으면, 사용불가인 것 처럼 보입니다.

이에 관해서, 보통 어떻게 DLL을 유통시키고, 구해서 쓰시는지 노하우 좀 공유 부탁드립니다.

제가 만든 프로그램을 배포한다면, 이 DLL을 어떻게 해야 남들이 쓰게 만들 수 있을지를 고민해야 합니다.

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    당연합니다. 문서로 제공해야 합니다.

    DLL 의 그런 단점을 제거하려고 만들어 낸 것이 COM 입니다.

    우리가 흔히 말하는 ActiveX 가 COM의 구현체중에 하나입니다.

    dual interface 로 만들어 내면 virtual table 이 없는 언어(javascript 과 같은 스크립트들)들에서도 사용할 수 있다는 장점도 있고 별도의 문서 파일 없어도 method 나 필드들을 알 수 있습니다.

    그러나 COM의 문제는 바이너리에 대한 interface를 작성하는 것이 대단히 번거롭고 까다롭다는데 있습니다.

    사용하기 불편하면 아무리 좋은 기술이라도 선뜻 손이 안가게 마련입니다.

    그런 이유로 COM보다는 작성하기 간단한 DLL을 많이 사용합니다.

    • 혹시, 표준 문서나 좋은 샘플같은 것이 있으면 같이 알려주시면 감사하겠습니다. 광자 2018.1.26 15:25
    • dll을 사용하는 언어가 c/c++라면 헤더파일을 그대로 전달합니다 그러나 델파이같은 언어라면 헤더파일을 pascal 코드로 변환해야 합니다. 즉 표준문서가 존재할 수 있는 그런것은 아닙니다. 다만 언어의 중립적인 목적으로 헤더파일의 내용을 문서로 풀어서 적어 배포할 수 있다는 겁니다. 보통 헤더파일 자체를 공개합니다. 정영훈 2018.1.26 23:27

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

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

(ಠ_ಠ)
(ಠ‿ಠ)