c - 如何访问 UNICODE_STRING 命令行变量?

标签 c windows winapi process command-line-arguments

我发现在Windows中运行的程序的命令行参数存储在Process Environment block 中。我发现PEB内部有一个名为RTL_USER_PROCESS_PARAMETERS的结构体,它保存一个名为UNICODE_STRING CommandLine的成员变量; 我可以通过编写c代码来访问这个变量吗?请协助 有关 PEB 的更多信息,请参阅此链接 http://msdn.microsoft.com/en-us/library/aa813706%28VS.85%29.aspx

最佳答案

您需要GetCommandLine功能。即使您的程序是 ANSI,您仍然可以显式调用宽版本 GetCommandLineW

这个函数是documented on MSDN 。查看“要求”部分,您将看到它是在 WinBase.h 中定义的,但您应该包含 Windows.h。它仅从 Windows XP 开始可用,因此根据您使用的 SDK 版本,您可能需要定义 _WIN32_WINNT第一:

#define _WIN32_WINNT 0x0502
#include <windows.h>

关于c - 如何访问 UNICODE_STRING 命令行变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12718085/

相关文章:

c++ - WinINet异步模式灾难

c++ - 在另一个线程(不是主线程)中创建窗口

对如何在 makefile 中包含/编译依赖项感到困惑

c - 插入排序的错误输出

c++ - 从 C 应用程序加载的 C++ 插件使用 C++ 库

python - __main__.pyinstallerimporterror 无法加载 dynlib/dll "shcore"

c++ - TCHAR 和 WCHAR 有什么区别?

c - 如何在dos中获取当前段

C# Windows App 删除页面

windows - 在 .bat 文件中启动一个进程但隐藏它?