在 main() 中获取没有参数的命令行参数
Get command line arguments without arguments in main()
一件奇怪的事夺走了我的睡眠。 .
我有 P7 图书馆。是写日志的库。
库中包含的示例很少。
C++ 的示例如下所示:
int main(int i_iArgC, char* i_pArgV[])
{
// Some code that don't use i_iArgC or i_pArgV
}
但是程序以某种方式处理命令行参数的技巧。
我玩了一点,确保这个主叫。
我做什么:
- 在调试中构建并在
main
上设置断点(以确保完全
这个main
被称为)
- 将
main(int i_iArgC, char* i_pArgV[])
更改为main()
(确保没有人使用它们)
我不知道怎么可能。
以下是您可以自行查看的最少步骤:
- 从 this 页面(link 在左上角)下载 P7 代码
- 解压缩存档
- 运行 build.sh(它按某种顺序运行几个 makefile)
- 从
Binaries
文件夹执行 Cpp_Example
- 再次执行
Cpp_Example /P7.Help
以查看应用对命令行参数的反应。
大多数系统允许在不依赖 main()
的情况下获取命令行参数。例如,在 Windows 上,您可以使用 GetCommandLineW()
.
库中有不可移植的代码可以在 Shared/Platforms/*/PProcess.h
中做到这一点。快速查看 Windows_x86/PProcess.h
表明它使用 GetCommandLineW()
并且 Linux_x86/
中的同一文件读取 /proc/self/cmdline
.
一件奇怪的事夺走了我的睡眠。 .
我有 P7 图书馆。是写日志的库。
库中包含的示例很少。 C++ 的示例如下所示:
int main(int i_iArgC, char* i_pArgV[])
{
// Some code that don't use i_iArgC or i_pArgV
}
但是程序以某种方式处理命令行参数的技巧。
我玩了一点,确保这个主叫。
我做什么:
- 在调试中构建并在
main
上设置断点(以确保完全 这个main
被称为) - 将
main(int i_iArgC, char* i_pArgV[])
更改为main()
(确保没有人使用它们)
我不知道怎么可能。
以下是您可以自行查看的最少步骤:
- 从 this 页面(link 在左上角)下载 P7 代码
- 解压缩存档
- 运行 build.sh(它按某种顺序运行几个 makefile)
- 从
Binaries
文件夹执行Cpp_Example
- 再次执行
Cpp_Example /P7.Help
以查看应用对命令行参数的反应。
大多数系统允许在不依赖 main()
的情况下获取命令行参数。例如,在 Windows 上,您可以使用 GetCommandLineW()
.
库中有不可移植的代码可以在 Shared/Platforms/*/PProcess.h
中做到这一点。快速查看 Windows_x86/PProcess.h
表明它使用 GetCommandLineW()
并且 Linux_x86/
中的同一文件读取 /proc/self/cmdline
.