獲取模塊路徑——C++

有時候,我們想獲取本模塊或本動態庫的路徑,而不是運行路徑,下面這個函數就可滿足:

#include<Windows.h>
#include<string>
 
using namespace std;
 
 const string& GetModulePath(const HMODULE hMod)
 {
     static string st_strModulePath;
     if(st_strModulePath.size()<1)
     {
         HMODULE hLocalMoudle=NULL;
         ::GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,(LPCTSTR)(&GetModulePath),&hLocalMoudle);
         char chArr[1024];
         ::GetModuleFileNameA(hLocalMoudle,(LPSTR)chArr,1024);
         string strTmpPath;
         strTmpPath=chArr;
         int iNumPos=strTmpPath.rfind("\\");
         st_strModulePath=strTmpPath.substr(0,iNumPos);
     }
     st_strModulePath+="\\";
     return st_strModulePath;
 }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章