CString CConfigDlg::GetModulePath() { TCHAR szPath[MAX_PATH] = { 0 }; HMODULE hModule = NULL; GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, (LPCSTR)"dsada", //可以是任何函数,全局变量等的地址 这里参考了 wr960204(武稀松)的专栏
&hModule); if (GetModuleFileName(hModule,szPath,MAX_PATH)) //绝对路径。若第一个参数为NULL,返回程序所在PATH { PathRemoveFileSpec(szPath); //除去了文件名字,只留下该项目生成DLL文件所在的路径名 // MessageBox(szPath); } else { AfxMessageBox("插件不存在"); } CString strPath = szPath; return strPath; //原来的方法 // CHAR szModuleFileName[MAX_PATH] = { 0 }; //MAX_PATH 260 // GetModuleFileName( AfxGetApp()->m_hInstance, szModuleFileName, 260 ); // AfxMessageBox(szModuleFileName); // CString strModulePath = szModuleFileName; // int nPos = strModulePath.ReverseFind( TEXT('\\')); // strModulePath = strModulePath.Left( nPos); // return strModulePath; }