DLL 자체 파일 경로 가져오기

DLL에서 DLL 자체 파일 경로를 가져오려면:
//   DLL     
TCHAR szCurrent[520] = { 0 };
HMODULE hModule = GetModuleHandle(_T("YourDllName.dll"));
if (hModule)
{
	GetModuleFileName(hModule/*NULL*/, szCurrent, _countof(szCurrent)-1);
}

다음과 같은 방법(MFC 버전)과 같이 DLL 자체 경로를 실측하여 가져올 수 없으며 DLL을 로드하는 응용 프로그램 경로를 가져옵니다.
TCHAR szDLLFullPath[MAX_PATH + 1];
GetModuleFileName(AfxGetApp()->m_hInstance, szDLLFullPath, MAX_PATH);
// 
//GetModuleFileName(::AfxGetResourceHandle(), szDLLFullPath, MAX_PATH);
// 
//GetModuleFileName(::AfxGetInstanceHandle(), szDLLFullPath, MAX_PATH);

그리고 이 MFC 버전도 다음과 같습니다.
TCHAR szCurrent[520] = { 0 };
AFX_MANAGE_STATE(AfxGetStaticModuleState());
GetModuleFileName(AfxGetResourceHandle(), szCurrent, 512);

좋은 웹페이지 즐겨찾기