반응형
dumpbin이라는 명령어를 사용해서 DLL이 노출하는 함수들을 확인할 수 있습니다.
dumpbin은 일반 cmd에서는 실행되지 않습니다.
Visual Studio를 설치한 이후에 Tools 메뉴의 Visual Studio Command Prompt에서 실행합니다.
실행 방식은 다음과 같습니다.
dumpbin /exports Mydll.dll
실행했을 때 다음과 같이 숫자(서수 정보)와 함께 함수명이 출력되는 것이 정상입니다.
이렇게 표시되지 않고 함수명이 함수명 = _함수명의 형태로 출력되는 경우가 있습니다.
다음과 같이 출력되는 경우입니다.
AddFloat와 AddInteger만 표시되어야 하는데 다른 형태로 표시되고 있습니다.
이 문제의 해결 방법은 다음과 같습니다.
먼저 프로젝트 속성(Alt + F7)의 좌측 메뉴에서 Linker -> Debugging 메뉴를 선택합니다.
Generate Debug Info가 있는데 No로 변경하면 됩니다.
새롭게 컴파일을 하면 DLL의 정보가 정상적으로 출력됩니다.
이름에 _가 붙는 것은 __cdecl 호출 방식의 함수에 대한 데코레이션입니다.
__stdcall 호출 형태에서는 _가 붙고 함수명 뒤에 @와 전달되는 인자의 크기 등이 표시가 됩니다.
반응형
'Programming > Win32&MFC&COM' 카테고리의 다른 글
IAutoComplete를 이용한 자동 완성(Auto Complete) 기능 구현 (0) | 2015.08.14 |
---|---|
라디오 버튼의 Warning: skipping non-radio button in group. 경고 제거 (0) | 2015.08.13 |
MFC에 Flash ActiveX 올리고 에러 발생 (0) | 2015.08.11 |
Dialog 내부에 FormView 추가하기 (2) | 2015.07.08 |
SDI(or MDI)에서 View를 포함하는 Dialog 띄울 때 문제점 (0) | 2015.07.02 |