我想创建一个进程,其语法类似于以下内容,但我不想创建线程:
hThread = CreateThread(
NULL, // no security attribute
0, // default stack size
InstanceThread, // thread proc
(LPVOID) hPipe, // thread parameter
0, // not suspended
&dwThreadId); // returns thread ID
但我检查了CreateProcess
的参考资料和样本:
BOOL result = ::CreateProcess(
L"C:\\Windows\\NOTEPAD.exe",
NULL,
NULL,
NULL,
FALSE,
NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&startupInfo,
&processInformation
);
似乎我必须指定一个现有的可执行文件来创建一个进程?如何通过类似于InstanceThread
的回调创建一个?
答案 0 :(得分:1)
你不能这样做。进程和线程是不同的。您只能通过在可执行文件中提供函数的地址来创建进程。
但是,您可以使用某个命令行参数创建您的进程,该参数将被您的进程读取,然后用于调用您想要的目标函数。
你想要达到什么目标?
答案 1 :(得分:0)
或许看看cygwin如何实现fork()
。 Unix fork()
就是你想要的。