Windows下怎么用C语言获取正在运行的程序的路径?

用C语言获取正在运行的这个程序的路径,这个程序就是用C语言写的。Windows平台下面的。

阅读 10k
4 个回答

main函数的参数中[int main(int argc, char **argv)]中的 argv[0]就是当前的环境变量值,你说说的是这个么?

To retrieve the name of the main executable module for a remote process, use the GetProcessImageFileName or QueryFullProcessImageName function.

GetModuleFileName function

25 out of 60 rated this helpful - Rate this topic Retrieves the fully qualified path for the file that contains the specified module. The module must have been loaded by the current process. To locate the file for a module that was loaded by another process, use the GetModuleFileNameEx function. Syntax C++

DWORD WINAPI GetModuleFileName(
Inopt_ HMODULE hModule,
Out LPTSTR lpFilename,
In DWORD nSize
);

Parameters
hModule [in, optional]
A handle to the loaded module whose path is being requested. If this parameter is NULL, GetModuleFileName retrieves the path of the executable file of the current process.
The GetModuleFileName function does not retrieve the path for modules that were loaded using the LOADLIBRARYAS_DATAFILE flag. For more information, see LoadLibraryEx.

lpFilename [out]
A pointer to a buffer that receives the fully qualified path of the module. If the length of the path is less than the size that the nSize parameter specifies, the function succeeds and the path is returned as a null-terminated string. If the length of the path exceeds the size that the nSize parameter specifies, the function succeeds and the string is truncated to nSize characters including the terminating null character.
Windows XP: The string is truncated to nSize characters and is not null-terminated.
The string returned will use the same format that was specified when the module was loaded. Therefore, the path can be a long or short file name, and can use the prefix "\?\". For more information, see Naming a File.

nSize [in]
The size of the lpFilename buffer, in TCHARs.

新手上路,请多包涵

I want to know too;;;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏