高手请进!!!高分相赠!!如何配置createprocess的lpEnvironment参数!!!!

lzkycm2000 2003-11-20 11:53:03
我想创建一个新进程,并且新进程和其父进程不在同一个环境中运行,即父进程出现任何异常不会影响子进程。要达到这个目的我应该如何配置lpEnvironment参数谢谢!!!
...全文
302 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
GR 2003-11-20
  • 打赏
  • 举报
回复
父进程出现异常不影响子进程的方法是关闭父进程与子进程的关系。在父进程里写closehandle(hProcess),hProcess是你子进程的句柄。安全方法是先等待子进程返回句柄然后关闭这个句柄,似乎环境变量没多大的关系。
flinming 2003-11-20
  • 打赏
  • 举报
回复
up
jsean 2003-11-20
  • 打赏
  • 举报
回复
下面是偶程序中的一块代码,可共参考,父子应该是本身运行在各自独立的进程空间的。

STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );

// Start the child process.
if( !CreateProcess(NULL, // No module name (use command line).
buffer, // Command line.
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
CREATE_NEW_CONSOLE, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&pi ) // Pointer to PROCESS_INFORMATION structure.
)
{
//ErrorExit( "CreateProcess failed." );
AfxMessageBox("CreateProcess failed.");
}
// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
tigerfox 2003-11-20
  • 打赏
  • 举报
回复
两个进程分别运行于独立的空间,互不干扰。

你的两个进程是如何行成父子关系的?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧