我正在尝试将子进程与外部应用程序正在加载的 dll 相关联。原因是我希望这个子进程在 dll 卸载后立即关闭。
我已经查看了这个问题以获取指导,但默认情况下,似乎CreateProcess
将子进程与外部应用程序相关联,而不是调用它的 DLL。
这是一段代码,可以解释我想要实现的目标:
从 DLL 中:
// ... Initialize ghJob to JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE
if (::CreateProcess( NULL, szCmdline , NULL, NULL, TRUE, CREATE_BREAKAWAY_FROM_JOB , NULL, NULL, &info, &processInfo)) // <-- Here is where I'd like to set the parent to the calling DLL
{
// SetParent(processInfo.hProcess, dllHinst) <-- This isn't right, but something like this
AssignProcessToJobObject( ghJob, processInfo.hProcess);
}
对此问题的任何见解将不胜感激,特别是如果我以错误的方式解决这个问题。