레이블이 DLL인 게시물을 표시합니다. 모든 게시물 표시
레이블이 DLL인 게시물을 표시합니다. 모든 게시물 표시

Visual C++ dumpbin.exe 를 이용한 dll(lib) export 내용 알아내기

dumpbin 유틸리티를 사용하면 .dll .lib 같이 COFF(Common Object File Format) 파일이 어떤 함수들을 export 하는지 쉽게 알 수 있다.

우선 dumpbin 의 위치는 아래 그림과 같이 ...\VC\bin 에 존재한다.


만약 mspdb80.dll(VC버전에 따라 다를 수 있음)을 찾을 수 없다는 메세지가 나오면 ...\VC\vcvarsall.bat 를 실행시킨다.
참고로 vcvarsall.bat 는 Visual Studio 환경변수를 자동으로 설정해주는 배치파일이다.


또는 ...\VC\bin\vcvars32.bat 를 실행시켜도 된다.


.dll .lib 에서 export 하는 내용을 알아내기 위해선 다음과 같이 exports 옵션을 사용한다.


Visual C++ DLL export 하기

// 함수 프로토타입 선언
extern "C"  __declspec(dllexport) Function();
// 함수
Function()
{
   ...
}

// 설명
extern "C"
: 컴파일시 C 스타일을 사용하여 함수명을 변경하지 않도록 해준다. 참고로 C 에서는 컴파일시 함수이름을 그대로 사용하지만 C++ 에서는 오버로딩 처럼 같은 함수이름이 존재할 수 있어, 컴파일시 함수에 특정값을 붙여 원래의 함수명을 변경한다.
__declspec(dllexport)
: 외부 프로그램에서 DLL에 있는 함수를 사용할 수 있도록 해준다. C와 호환을 유지하지 않는다면 extern "C" 는 빼도 된다.