在启动另外一个程序实例的时候是需要加入参数的,启动的方式有CreateProcess和ShellExecute。
CreateProcess在传入命令参数时,需要在命令参数前面加入一个空格,否则WinMain中的lpCmdLine参数获取的参数是不全的,命令第一个空格前的参数会被过滤掉
这样启动的话cmdx.exe中WinMain的参数lpCmdLine = "456"。因为第一个空格前的参数被删掉了,所以启动的时候要在参数123前加入一个空格
或者使用ShellExecute(NULL, _T("open"), _T("D:\\cmdx.exe"), _T("123 456"), NULL, SW_SHOW);来启动程序,也可以避免这个问题。
还有一个需要注意的是参数不能使全角字符,否则会出错。