Implicit Linking DLL
Implicit Load Time Linking 이는 해당 프로그램에서 사용될 DLL 정보를 프로그램에 내장하는 방법이다.
이렇게 하면 프로그램을 실행할 때 어떤 DLL이 필요한지 알려주어 프로그램이 착오 없이 실행된다.
Implicit Linking으로 사용하고자 할 때는 해당 LIB 파일을 링크 옵션에 더해준 뒤 헤더 파일을 소스코드에 포함시키고 원하는 함수를 사용하면 되므로 간단하다. 내보내려는 경우 __declspec(dllexport)를 사용하여 export 하고, 사용 할 경우 __declspec(dllimport)를 사용통해 import하여 해당 소스에 접근이 가능하다.
Explicit Linking DLL
Explicit Linking은 사용이 조금 까다로울 수 있다. 일단 원하는 시점에 해당 LoadLibrary나 LoadLibraryEx을 통해
라이브러리를 로드를 한 후, 원하는 함수의 포인터를 가져와서 호출하는 방식이다. 이렇게 프로세스의 가상 메모리에 적재된 DLL은 사용이 끝나면 FreeLibrary를 사용하여 풀어주어야 한다. DLL이 적재될 때, 그리고 해제될 때 카운터의 값이 바뀌 되고 이 카운터가 0이 되면 해당 DLL은 더 이상 사용되지 않으므로 시스템은 자동으로 메모리에서 삭제한다.
'DLL' 카테고리의 다른 글
[DLL] DLL Interface (0) | 2021.12.19 |
---|