LoadLibrary후 GetProcAddress하는 과정이 너무나 반복되는 코드가 많고 그러다 보니 매크로를 만들게 되었다. 이 매크로는 문자열을 UNICODE를 사용하는 환경에서도 동작한다.
함수포인터는 다음과 같이 인스턴스 앞에 pfn으로 끝나게 약속하여야 한다.
//헤더
typedef void (*pfnOverlay_GLClear)();
extern pfnOverlay_GLClear Overlay_GLClear;
//소스
pfnOverlay_GLClear Overlay_GLClear;
매크로 소스는 다음과 같다. LOAD_FUNC(함수명) 이렇게 넘겨주면된다. 여기서 ##는 두개의 문자열을 붙여주는 역할을하며 #는 입력받은 문자열을 ""를 붙여 문자열로 사용될수 있게 만들어준다.
//매크로
#define LOAD_FUNC(func) func = (pfn##func)GetProcAddress(hDll, #func);\
if(func) \
OutputDebugStringA(#func);\
else \
OutputDebugStringA(#func " error");
No comments:
Post a Comment