獲得當前應用程序的運行目錄

在開發過程中經常需要獲得程序當前的運行目錄,這時就可以使用GetModuleFileName函數
DWORD WINAPI GetModuleFileName(
HMODULE hModule,
LPTSTR lpFileName,
DWORD nSize
);
函數功能
此函數得到當前應用程序的運行目錄,還包括應用程序的文件名。
參數說明
hModule:要獲取文件名的模塊名柄,可以是運用LoadLiberary得到的句柄,null表示當前模塊
lpFileName:輸出參數,存放取得的文件名
nSize:lpFileName參數的長度

DWORD GetCurrentDirectory(
  DWORD nBufferLength, // size of directory buffer
  LPTSTR lpBuffer // directory buffer
  );
函數功能
   找到當前進程的當前目錄
參數說明
   nBufferLength:lpBuffer緩衝區的長度
   lpBuffer:指定一個預定義字串,用於裝載當前目錄
返回值
   調用成功 返回裝載到lpBuffer的字節數。

調用示例:
TCHAR *path = new TCHAR[MAX_PATH];
ZeroMemory(path, MAX_PATH);
// path == "d:\Project\Test\MFC\MFC\debug"
GetCurrentDirectory(MAX_PATH, path);
// path ==  "d:\Project\Test\MFC\debug\MFC.exe"
GetModuleFileName(NULL,path,MAX_PATH);

補充說明:
如果想得到一個已經加載的DLL文件的路徑,可以運用以下方法:
char  strPath[MAX_PATH];  
GetModuleFileNameA(GetModuleHandle("你的DLL名字"),strPath,MAX_PATH);
int j=strlen(strPath);
for(j=strlen(strPath);strPath[j]!='\\';j--);
strPath[j]='\0';  
其中strPath即爲你的DLL文件所在的目錄

轉載自:http://lingxiaoyequ.blog.163.com/blog/static/216390502009916332362/

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