Windows提取程序載入的DLL同目錄下的其他檔案
阿新 • • 發佈:2019-02-13
現在有如下需求:有一個檔案Example.exe放在載入進程序的一個kernel.dll的同級目錄下,現在要獲取該Example.exe的檔案路徑,程式如下所示:
BOOL __getOtherFilePath() { HINSTANCE hr; WCHAR ExampleFileName[] = L"\\ExmapleDemo.exe"; WCHAR ExampleFilePath[MAX_PATH] = { 0 };//用來存放獲取的完整路徑 HMODULE wpsMinisiteDll = ::LoadLibrary(L"Kernel.dll"); if (wpsMinisiteDll == NULL) { _tprintf(L"Load the kernel.dll path failed."); return false; } ::GetModuleFileName(wpsMinisiteDll, ExampleFilePath, MAX_PATH); ::PathRemoveFileSpec(ExampleFilePath); ::PathRemoveBackslash(ExampleFilePath); errno_t concatError = wcscat_s(ExampleFilePath, ARRAYSIZE(ExampleFilePath), ExampleFileName); if (concatError != 0) return false; return true; }