#2
你们都要疼我哦2010-12-28 13:42
|
请问各位大侠WinMain函数的一个参数lpCmdLine(指向进程命令行缓冲区的指针):
(1)该如何理解该参数指向的命令行内存,即主要讲讲为什么要设置这样的一个命令行内存?
(2)进程命令行缓冲区中都放了些什么数据?
(3)命令行内存中保存的数据的作用是什么?
(4)什么情况下会用到该参数指向的命令行内存中的数据?
(5)该如何应用该参数指向的命令行内存中的数据?
(6)结合您个人的开发经验,谈谈您在开发软件时对它的使用情况?
为了能更好的理解进程的命令行,请各位大侠按上面的提问回答,回答时标明是第几个问题,谢谢!
我对它已有的理解(可能有误,敬请赐教):
(1)该参数是一个指针,指向内存的一块地址,系统在创建进程时,会将一个命令行缓冲区(包含已执行文件的完整的路径)地址传给它;
(2)该命令行内存始终不会是空的,至少它的第一个标记是可执行文件的名字;
(3)进程可以接收只有一个字符的命令行,即用于终止字符串的0;
(4)C运行库的启动代码开始执行一个GUI程序时,会调用GetCommandLine()函数来获得进程的完整命令行,忽略可执行文件的名称,然后将指向命令行剩余部分的指针传给
WinMain函数的lpCmdLine参数;
(5)我们可以在命令行的内存空间中写入内容,但不建议;
(6)调用GetCommandLine函数返回的总是同一个缓冲区的地址,所以不建议向它指向的缓冲区中写入数据,因为一旦那样做就不知道它原来的内容了;可以将它中的内容拷贝 到自己的缓冲区中再写,改等。