vc 获得调用者的模块名称

void ShowCallerModuleName(void* calleraddr )
{
HMODULE hCallerModule = NULL;
TCHAR szModuleName[MAX_PATH] = _T("");
void *callerAddress = calleraddr;// _ReturnAddress();
if (GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, (LPCTSTR)callerAddress, &hCallerModule))
{
GetModuleFileName(hCallerModule, szModuleName, ARRAYSIZE(szModuleName));
MessageBox(NULL, szModuleName, _T("Who is calling me?"), MB_OK);
}
}

//调用

ShowCallerModuleName(_ReturnAddress());

  

写到构造函数里

原文地址:https://www.cnblogs.com/ahuo/p/5653209.html