在Windows上,CreateProcess win32函数用于创建新进程。该函数的签名接受指向“命令行”
我熟悉的每种语言(C、C++、C#、Java)都允许一个接受字符串数组的
这个解析代码在哪里?它是操作系统的一部分(在
lpCommandLine
的指针,因此将命令行作为单个字符串传递。我熟悉的每种语言(C、C++、C#、Java)都允许一个接受字符串数组的
main
函数。因此,在CreateProcess和main
之间必须有某个解析lpCommandLine
并将其转换为args[]
的东西。这个解析代码在哪里?它是操作系统的一部分(在
CreateProcess
内部),还是每种语言的“运行时”(在调用main
之前在新进程内运行的代码)的一部分?
lpApplicationName
参数为空的情况下运行哪个命令(允许的情况)。当然,考虑到微软编写了很多自己的语言运行时,并且它以混合层而闻名,我不确定该问题是否实际上在询问有意义的区别。 - John Bollinger