【发布时间】:2011-08-01 06:17:21
【问题描述】:
在创建新子进程的窗口中,我使用CreateProcess 函数:
BOOL WINAPI CreateProcess(
__in_opt LPCTSTR lpApplicationName,
__inout_opt LPTSTR lpCommandLine,
__in_opt LPSECURITY_ATTRIBUTES lpProcessAttributes,
__in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,
__in BOOL bInheritHandles,
__in DWORD dwCreationFlags,
__in_opt LPVOID lpEnvironment,
__in_opt LPCTSTR lpCurrentDirectory,
__in LPSTARTUPINFO lpStartupInfo,
__out LPPROCESS_INFORMATION lpProcessInformation
);
这里我们可以看到CreateProcess可以获取lpEnvironment参数来指定新进程的环境变量,如果为NULL,则子进程和父进程的环境相同。现在我希望孩子具有与父进程相同的环境以及lpEnvironment 中指定的环境变量(即父进程和指定进程的合并环境)。你会如何建议这样做?我是否应该获取父级的所有环境,将它们与新环境合并并将它们全部传递给CreateProcess?
【问题讨论】:
标签: c++ c winapi environment-variables