본문 바로가기

Programming/Win32&MFC&COM

DLL 파일만 있을 때, lib 파일 생성하기

반응형

프로젝트가 커지면 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를 생성할 수 있습니다.


반응형