somez72 님이 쓰신 글 :
: 답변 감사합니다.
: MY_FUNC_testDLL testDLL=(MY_FUNC_testDLL)::GetProcAddress(dll,"testDll"); 에서...
:
: :: (전역스코프 연산자) 를 빼야 맞는것이 아닌지요?
:
: 캐스팅이면... 아래처럼 해야 맞는것이 아닌가 해서요...
: MY_FUNC_testDLL testDLL=(MY_FUNC_testDLL)GetProcAddress(dll,"testDll");
casting은 반환된 함수 포인터에 대해 적용되는것이라서 상관없습니다.
(MY_FUNC_testDLL)GetProcAddress(...);
(MY_FUNC_testDLL)::GetProcAddress(...);
(MY_FUNC_testDLL)(::GetProcAddress(...));
다 됩니다. :-)
:
: 혹시... DLL내의 export된 함수들의 list를 알아낼 수 있는 방법이 있을까요?
: (저는 지금 남이 배포한 DLL 속의 함수를, C++ builder에서 호출해 보려하는데...
: 아직 저는 , 그 DLL 속에 어떤 함수들이 정의 되어 있는지... 알수가 없어서요 )
:
C++Builder6 설치 디렉토리의 'bin' 에 보시면, 'tdump.exe' 라는 도구가 있습니다.
아래와 같이 하시면 DLL에서 export 된 함수들을 알아보실 수 있습니다.
'tdump -ee unknown.dll'
MSVC의 'depens.exe'라는 도구를 이용해도 됩니다.
참고) http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=44033
|