有时候需要拿到当前Dll的名字,网上找了找,在VC6之后,可以使用__ImageBase
,简单将其转换为HINSTANCE后用GetModuleFileName可以获得Dll名字。
EXTERN_C IMAGE_DOS_HEADER __ImageBase;
void doSomethingForCurrentDll()
{
/// Get module file name by passing __ImageBase
LPTSTR strDLLPath1 = new TCHAR[_MAX_PATH];
::GetModuleFileName((HINSTANCE)&__ImageBase, strDLLPath1, _MAX_PATH);
}