[DLL] (펌) 자신의 경로를 얻는 방법

2018. 2. 23. 09:55IT-개발/winapi 및 MFC

반응형


(펌 : http://jinha-world.blogspot.kr/2009/04/win32-dll.html )



[WIN32] DLL 자신의 경로 얻는 방법

1. 개요
DLL 자신의 경로를 얻는 방법을 설명한다.

2. 본문
샘플 코드는 다음과 같다.

1) ATL COM DLL의 경우

TCHAR szPath[MAX_PATH + 1] = {0};
HINSTANCE hInst = _AtlBaseModule.GetModuleInstance();

::GetModuleFileName(hInst, szPath, MAX_PATH);

2) WIN32 DLL의 경우

// Global var to contain DLL module handle
HMODULE g_hDLL = NULL;


BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        g_hDLL = hModule;
        break;
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
    break;
    }
    return TRUE;
}

void somefunc()
{
    MA_CHAR pszLibDirPath[MAX_PATH + 1] = {0};

    ::GetModuleFileName(g_hDLL, pszLibDirPath, MAX_PATH);
}