如何使用mfc创建子exe、PROCESS?

如何使用mfc创建子exe、PROCESS?,mfc,parent-child,exe,Mfc,Parent Child,Exe,我想调用一个进程虽然mfc,但我需要新的exe必须假装像一个孩子的对话。因此,如果新的exe无法关闭,用户就不应该访问主进程(对话框)。有可能吗?可以使用OLE Automation/COM轻松完成。对于进程外服务器,您有一个进程接口和第二个进程…是的。当您打开新进程时,您必须等待用户直到关闭子进程,然后您必须使用WaitForSingleObject(pi.hProcess,INFINITE) 下面的代码 if( !CreateProcess( NULL, // No module name

我想调用一个进程虽然mfc,但我需要新的exe必须假装像一个孩子的对话。因此,如果新的exe无法关闭,用户就不应该访问主进程(对话框)。有可能吗?

可以使用OLE Automation/COM轻松完成。对于进程外服务器,您有一个进程接口和第二个进程…

是的。当您打开新进程时,您必须等待用户直到关闭子进程,然后您必须使用WaitForSingleObject(pi.hProcess,INFINITE)

下面的代码

if( !CreateProcess( NULL, // No module name (use command line).
    exePath,      // Command line.
    NULL,// Process handle not inheritable.
    NULL,                 // Thread handle not inheritable.
    FALSE,                // Set handle inheritance to FALSE.
    NORMAL_PRIORITY_CLASS,// 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.
    )
{
    cout << "Unable to create\n";}
    // Close process and thread handles. 
    CloseHandle( pi.hProcess );
    CloseHandle( pi.hThread );

    return false;

}

    WaitForSingleObject( pi.hProcess, INFINITE );// wait user till close exe(after close child process then go parent process)
return true;

// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
if(!CreateProcess(NULL,//没有模块名(使用命令行)。
exePath,//命令行。
NULL,//进程句柄不可继承。
NULL,//线程句柄不可继承。
FALSE,//将句柄继承设置为FALSE。
普通\u优先级\u类,//无创建标志。
NULL,//使用父级的环境块。
NULL,//使用父级的起始目录。
&si,//指向STARTUPINFO结构的指针。
&pi)//指向进程信息结构的指针。
)
{

如果我理解你的意思,你可以简单地生成一个新的进程并关闭当前的(父进程)processNo在用户完成新exe的工作后,她可以打开第一个mfc exe。所以你想使“新进程”对话框成为模态并显示所有屏幕?我只希望它与我的exe相关,而不是全屏阻止所有其他内容,始终是最重要的内容。但这主意不错,谢谢。我想你想完成子进程t的工作hen go parent dialog.vs2003中的mfc应用程序是否可能?