Programming/Win32&MFC&COM
DLL 파일만 있을 때, lib 파일 생성하기
psychoria
2015. 6. 20. 01:00
반응형
프로젝트가 커지면 DLL을 자주 사용하게 됩니다.
DLL을 MFC나 Win32 프로젝트에서 사용하는 방법은 크게 두 가지입니다.
첫 번째 방법은 DLL의 함수를 export하는 lib와 h(헤더)파일을 사용하는 방법입니다.
두 번째 방법은 LoadLibrary를 통해서 동적으로 DLL을 불러오고 해당 함수의 포인터를 얻는 방법입니다.
DLL 내부에서 외부에 노출시키는 함수 목록을 보기 위해서 dumpbin 명령어를 사용할 수 있습니다.
Visual Studio를 켜고 TOOLS 메뉴의 Visual Studio Command Prompt를 실행합니다.
dumpbin /exports a.dll
이렇게 실행하면 a.dll 내부의 함수 목록을 확인할 수 있습니다.
여기서 얻은 정보를 통해서 lib 파일을 생성할 수 있습니다.
여기서 lib 파일은 정적 라이브러리로 변환이 아닌 DLL 파일을 단순하게 참조하는 역할입니다.
먼저 def 파일을 다음과 같이 생성합니다.
LIBRARY a.dll EXPORTS Func1 Func2 Func3
첫 줄은 LIBRARY dll이름 이렇게 작성하고 EXPORTS 밑에 dumpbin을 통해서 얻은 함수 목록을 작성합니다.
이렇게 a.def 파일을 만들면 다음 명령어로 lib 파일을 생성할 수 있습니다.
lib /def:a.def /machine:x86
/machine 옵션에 원하는 타겟을 지정해주면 됩니다.
이렇게 하면 DLL에서 lib를 생성할 수 있습니다.
반응형