1. 程式人生 > >Windows提取程序載入的DLL同目錄下的其他檔案

Windows提取程序載入的DLL同目錄下的其他檔案

現在有如下需求:有一個檔案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;
}