kkuzil.own@gmail.com

Posted
Filed under Development/etc.
일반적으로 std C 스타일로 컴파일된 DLL 들은 DLL 뷰어(dllexp.exe)로 확인하면 아래와 같이 보이게 된다.
함수 형식은 보이지 않으며 함수 이름만 확인 할 수 있다.
사용자 삽입 이미지



하지만 VC++ 환경에서 C++ 스타일로 컴파일을한 DLL들을 아래처럼 함수 원형까지 확인할 수 있게 되는데..
이렇게 보이는 함수들은 VC++가 아닌 다른 개발언어에서 함수 어드레스를 "함수 이름"으로 불러 올수 없다..
사용자 삽입 이미지


그래도 사용할  수 있는 방법은... 아래와 같다.
DLL 뷰어 (dllexp.exe)를 실행한 후 "Undecorate C++ function names"를 체크해제

사용자 삽입 이미지


체크를 해제 하고 DLL을 불러오면 함수이름이 다르게 나오는걸 확인 할 수 있다.

이렇게 나오는 함수이름을 통해서 사용하면 된다.
예) FunTest = GetProcAddress(hDll, "?test_lib@@YAHXZ");


개발 코드상 보기에는 좋지 않다는.. 그래도 쓸수 있는게 어디겠냐만은..

사용자 삽입 이미지
2014/06/23 14:26 2014/06/23 14:26