C++程序创建两个并行的进程,一个是while循环接收窗口消息,一个是jni调用java
时间: 2024-03-22 16:42:39 浏览: 24
可以使用Windows API的CreateProcess函数创建两个并行的进程。
下面是一个示例代码:
```c++
#include <windows.h>
#include <stdio.h>
void main() {
STARTUPINFO si1, si2;
PROCESS_INFORMATION pi1, pi2;
ZeroMemory(&si1, sizeof(si1));
si1.cb = sizeof(si1);
ZeroMemory(&pi1, sizeof(pi1));
ZeroMemory(&si2, sizeof(si2));
si2.cb = sizeof(si2);
ZeroMemory(&pi2, sizeof(pi2));
// create process 1
if (!CreateProcess(NULL, "window_message_receiver.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si1, &pi1)) {
printf("CreateProcess failed (%d).\n", GetLastError());
return;
}
// create process 2
if (!CreateProcess(NULL, "java_jni_caller.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si2, &pi2)) {
printf("CreateProcess failed (%d).\n", GetLastError());
return;
}
// Wait until both processes are finished
WaitForSingleObject(pi1.hProcess, INFINITE);
WaitForSingleObject(pi2.hProcess, INFINITE);
// Close process handles.
CloseHandle(pi1.hProcess);
CloseHandle(pi1.hThread);
CloseHandle(pi2.hProcess);
CloseHandle(pi2.hThread);
}
```
其中,第一个CreateProcess函数创建了一个名为window_message_receiver.exe的进程,它可以接收窗口消息。第二个CreateProcess函数创建了一个名为java_jni_caller.exe的进程,它可以调用Java中的JNI函数。
需要注意的是,这只是一个示例代码,实际情况下需要根据具体需求进行修改。