DLL 獲取自身的檔案路徑
阿新 • • 發佈:2018-12-26
在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);