GetModuleFileName

GetModuleFileName

獲取當前進程已載入模組的檔案的完整路徑,該模組必須由當前進程載入。

如果想要獲取另一個已載入模組的檔案路徑,可以使用GetModuleFileNameEx函式。

基本介紹

  • 中文名:無
  • 外文名:GetModuleFileName
  • 函式類型:GetModuleFileNameEx函式
  • 返回值:Long
聲明,(VB),(C++),返回值,參數,註解,VC函式,函式原型,函式參數,函式返回值,頭檔案,實例原始碼,

聲明

(VB)

Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long

(C++)

DWORD WINAPI GetModuleFileName(    _In_opt_  HMODULE hModule,    _Out_     LPTSTR lpFilename,    _In_      DWORD nSize);

返回值

Long,如執行成功,返回複製到lpFileName的實際字元數量;零表示失敗。使用GetLastError可以列印錯誤信息。

參數

hModule Long
一個模組的句柄。可以是一個DLL模組,或者是一個應用程式的實例句柄。如果該參數為NULL,
該函式返回該應用程式全路徑。
lpFileName String
指定一個字串緩衝區,要在其中容納檔案的用NULL字元中止的路徑名,hModule模組就是從這個檔案裝載進來的
nSize Long
裝載到緩衝區lpFileName的最大字元數量

註解

在Windows 95下,函式會核查應用程式的內部版本號是否為4.0或更大的一個數字。如果是,就返回一個長檔案名稱,否則返回短檔案名稱
原型及各參數解釋
DWORD GetModuleFileName(    HMODULE hModule,    LPTSTR lpFilename,    DWORD nSize);
獲得hModule所指的檔案的名字,
hModule在LoadLibrary之類的函式會返回,是一個句柄,用來標記這個檔案資源。
lpFilename是你存放返回的名字的記憶體塊的指針,是一個輸出參數,nSize是這個記憶體塊的大小,用於防止溢出。
返回值是用於指示是否發生錯誤的。

VC函式

函式原型

DWORDGetModuleFileName(HMODULE  hModule,LPTSTR  lpFilename,DWORD  nSize);

函式參數

HMODULE hModule 裝載一個程式實例的句柄。如果該參數為NULL,該函式返回該當前應用程式全路徑。
LPTSTR lpFileName 是你存放返回的名字的記憶體塊的指針,是一個輸出參數
DWORD nSize,裝載到緩衝區lpFileName的最大值

函式返回值

如果返回為成功,將在lpFileName的緩衝區當中返回相應模組的路徑,如果所設的nSize過小,那么返回僅按所設定緩衝區大小返回相應字元串內容。
如果函式失敗,返回值將為0,利用GetLastError可獲得異常代碼。

頭檔案

windows.h

實例原始碼

#include <windows.h>#include <stdio.h>BOOL CreateSampleService(){    TCHAR szPath[MAX_PATH];    if( !GetModuleFileName( NULL, szPath, MAX_PATH ) )    {        printf("GetModuleFileName failed (%d)\n", GetLastError());        return FALSE;    }return TRUE;}/*如果想獲得某個正在運行的EXE或者DLL的全路徑可以這樣寫代碼GetModuleFileNameEx(hProcess,hInst,lpFile,MAX_PATH);//注意下緩衝區就行了。*/

相關詞條

熱門詞條

聯絡我們