使用APIDWORD GetModuleFileName( HMODULE hModule, LPTSTR lpFilename, DWORD nSize ); hModule 为NULL则可以获得当前模块的full path.
见MSDN如下:
GetModuleFileName
The GetModuleFileName function retrieves the fully qualified path for the specified module.
To specify the process that contains the module, use the GetModuleFileNameEx function.
DWORD GetModuleFileName(
HMODULE hModule,
LPTSTR lpFilename,
DWORD nSize
);
Parameters
hModule
[in] Handle to the module whose path is being requested. If this parameter is NULL, GetModuleFileName retrieves the path for the current module.
lpFilename
[out] Pointer to a buffer that receives a null-terminated string that specifies the fully-qualified path of the module. If the length of the path exceeds the size specified by the nSize parameter, the function succeeds and the string is truncated to nSize characters and null terminated.
The path can have the prefix "//?/", depending on how the module was loaded. For more information, see Naming a File.
nSize
[in] Size of the lpFilename buffer, in TCHARs.
Unicode: Implemented as Unicode and ANSI versions. Note that Unicode support on Windows Me/98/95 requires Microsoft Layer for Unicode.
Header: Declared in Winbase.h; include Windows.h.
Library: Use Kernel32.lib.