char * getcurrentDLL()
{
static char array[MAX_PATH] = {0} ;
if (strlen(array) > 1 )
{
return array;
}
char * pstrDllName = "my.dll";
HMODULE hMod = GetModuleHandle( pstrDllName );
if(hMod != NULL)
{
TCHAR szBuffer[MAX_PATH] = {0};
GetModuleFileName(hMod, szBuffer, sizeof(szBuffer) / sizeof(TCHAR) - 1);
memcpy( array, szBuffer, strlen(szBuffer) - strlen( pstrDllName ) );
}
else
{
MessageBox(0,"ûÓÐÕÒµ½ dll ","",MB_OK);
}
// MessageBox(0,array,"",MB_OK);
return array;
}
转一篇文章:https://blog.csdn.net/wangyjfrecky/article/details/80361334
static HMODULE GetSelfModuleHandle() //全局;
{
MEMORY_BASIC_INFORMATION mbi;
return ((::VirtualQuery(GetSelfModuleHandle, &mbi, sizeof(mbi)) != 0) ? (HMODULE)mbi.AllocationBase : NULL);
}
//
void GetFullPathOfDll(std::string& strDllFullPath)
{
char szPath[MAX_PATH];
GetModuleFileNameA(GetSelfModuleHandle(), szPath, MAX_PATH);
strDllFullPath = std::string(szPath);
}