dll

    [DLL] DLL Interface

    DLL Interface Interface를 통한 DLL 배포 방식 - Interface는 순수 가상 함수들로만 이루어진 최상위 Class 라고 보면된다. 해당 Interface Class를 상속받아 실질적인 배포를 할 Class의 내부는 숨길 수 있다는 장점과, 해당 Interface를 통해 여러가지 버전의 Library를 제공 할 수 있다는 장점이 있다. Interface를 통한 배포방식의 장점 - 먼저 이전 방식에선 해당 DLL Header의 namespace로 기능별로 묶어 제공을 하였는데, 이렇게 되면 해당 Class를 반환해서 사용하려면 내보내야 하는 것들이 너무 많아져 불편하다. 하지만 Interface를 통해 전역으로 생성해주는 함수를 통해 해당 Class를 반환해 준다면 이런 문제들이 사..

    [DLL] Implicit Linking DLL / Explicit Linking DLL

    Implicit Linking DLL Implicit Load Time Linking 이는 해당 프로그램에서 사용될 DLL 정보를 프로그램에 내장하는 방법이다. 이렇게 하면 프로그램을 실행할 때 어떤 DLL이 필요한지 알려주어 프로그램이 착오 없이 실행된다. Implicit Linking으로 사용하고자 할 때는 해당 LIB 파일을 링크 옵션에 더해준 뒤 헤더 파일을 소스코드에 포함시키고 원하는 함수를 사용하면 되므로 간단하다. 내보내려는 경우 __declspec(dllexport)를 사용하여 export 하고, 사용 할 경우 __declspec(dllimport)를 사용통해 import하여 해당 소스에 접근이 가능하다. Explicit Linking DLL Explicit Linking은 사용이 조금 까..