我正在使用this technique从内存中启动GUI应用程序的控制台程序。我还提供了从GUI到控制台程序的一些数据,通过无证使用si.lpReserved2和si.cbReserved2,作为described here。 所有这些都是在WinXP上的VS2010中编译的,并且在Windows XP 7和8中运行良好。
当VS2013出现时,它改变了处理上述参数的方式。如果我将它们设置为nil和0,则它适用于Windows 8和其他版本。如果尝试像以前一样使用它们,则使用AppCrash弹出消息停止控制台程序 - 仅在Windows8中,在Windows XP和7上它仍然有效。
VS2013在si.lpReserved2中的变化是什么,是否可以在Windows 8中继续使用它?这非常方便,非常合法。
答案 0 :(得分:2)
文档说:
<强> cbReserved2 强>
保留供C运行时使用;必须为零。
<强> lpReserved2 强>
保留供C运行时使用;必须为NULL。
这可能不是更清楚。
如果您希望将参数传递给新进程,请通过命令行执行此操作。