GetModuleFileName
文章目錄
- GetModuleFileName
- 函數功能
- 函數聲明:
- 第一個參數
- 第二個參數
- 第三個參數
- 返回值
- 注意:
- 實現代碼:
- 獲取主模塊路徑
- 獲取DLL模塊路徑
GetModuleFileName
函數功能
計算機應用中的一個函數,用以獲取當前進程已加載模塊文件的完整路徑。
函數聲明:
GetModuleFileNameA(_In_opt_ HMODULE hModule,_Out_writes_to_(nSize,((return < nSize) ? (return + 1) : nSize)) LPSTR lpFilename,_In_ DWORD nSize);第一個參數
屬于輸入參數,一個模塊的句柄。可以是一個DLL模塊,或者是一個應用程序的實例句柄。如果該參數為NULL,該函數返回該應用程序全路徑(即主模塊路徑)
第二個參數
屬于輸出參數,指定一個字串緩沖區,要在其中容納文件的用NULL字符中止的路徑名,hModule模塊就是從這個文件裝載進來的。
第三個參數
屬于輸入參數,裝載到緩沖區lpFileName的最大字符數量。
返回值
Long,如執行成功,返回復制到lpFileName的實際字符數量;零表示失敗。使用GetLastError可以打印錯誤信息。如果返回為成功,將在lpFileName的緩沖區當中返回相應模塊的路徑,如果所設的nSize過小,那么返回僅按所設置緩沖區大小返回相應字符串內容。
返回值是用于指示是否發生錯誤的。
注意:
GetCurrentDirectory只是返回當前進程的當前目錄,而并不是進程的鏡像文件(.exe)所在的目錄
GetCurrentDirectory返回當前進程的當前目錄,并不一定返回你的應用程序的目錄。如果你在應用程序中調用了打開文件對話框,你選擇了一個文件,那么,這個文件所在的目錄就成了當前進程的當前目錄了。
GetModuleFileName()是指進程的鏡像文件(.exe)所在的目錄
GetModuleFileName 函數指定當前進程模塊的路徑.它僅僅操作當前進程下的模塊.如果想獲取其他進程下的模塊信息, 則需使用 GetModuleFileNameEx 函數.
GetCurrentDirectory()適用于XP等系統,在WinCE上不能使用
GetModuleFileName()適用于WinCE2.0以后
實現代碼:
獲取主模塊路徑
TCHAR szMoudlePath[MAX_PATH];if (!GetModuleFileName(NULL, szMoudlePath, MAX_PATH)){LPCSTR a = "獲取主模塊路徑失敗";LPCSTR b = "再接再厲";MessageBox(NULL, a, b, MB_OK);return 0;}LPCSTR a = "獲取主模塊路徑成功";LPCSTR b = "厲害";MessageBox(NULL, szMoudlePath, b, MB_OK);獲取DLL模塊路徑
TCHAR szMoudlePath[MAX_PATH];HMODULE hKernel32;hKernel32 = LoadLibrary("kernel32.dll");if (!GetModuleFileName(hKernel32, szMoudlePath, MAX_PATH)){LPCSTR a = "獲取DLL模塊路徑失敗";LPCSTR b = "再接再厲";MessageBox(NULL, a, b, MB_OK);return 0;}LPCSTR a = "獲取DLL模塊路徑成功";LPCSTR b = "厲害";MessageBox(NULL, szMoudlePath, b, MB_OK);總結
以上是生活随笔為你收集整理的GetModuleFileName的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CreateDirectory Ge
- 下一篇: FindFirstFile Find