本帖最后由 易造轮 于 2026-7-30 08:17 编辑
这个方案是:Windows 线程消息队列(Message Queue)
g_就绪事件 = CreateEventA (0, 真, 假, 0 )hThread = CreateThread (0, 0, 到整数 (&工作线程 ), 0, 0, 0 ) WaitForSingleObject (g_就绪事件, 3000 )CloseHandle (g_就绪事件 )返回 (真)| 变量名 | 类 型 | 静态 | 数组 | 备 注 | | ret | 整数型 | | | | msgId | 整数型 | | |
g_msg指针 = 申请内存_ (28 ) PeekMessageA (g_msg指针, 0, 0, 0, 0 ) g_线程ID = GetCurrentThreadId () SetEvent (g_就绪事件 ) 判断循环首 (真) ret = GetMessageA (g_msg指针, 0, 0, 0 ) 如果真 (ret = 0 ) 跳出循环 ()
 msgId = _Get (g_msg指针, 4 ) 如果真 (msgId = 1025 )  输出调试文本 (“收到ID:” + 到文本 (_Get (g_msg指针, 8 )) )  判断循环尾 ()释放内存_ (g_msg指针 )返回 (0 )PostThreadMessageA (g_线程ID, 1025, 参_id, 0 )PostThreadMessageA (g_线程ID, 18, 0, 0 ) 置入代码 ({ 139, 69, 8, 3, 69, 12, 139, 0, 201, 194, 8, 0 })返回 (0 ) 如果真 (是否为空 (参数 ))  参数 = #HEAP_ZERO_MEMORY 返回 (HeapAlloc (GetProcessHeap_ASM (), 8, 内存大小)) 如果真 (内存地址 = 0 ) 返回 (假)返回 (HeapFree (GetProcessHeap_ASM (), 0, 内存地址))置入代码 ({ 100, 161, 24, 0, 0, 0, 139, 64, 48, 139, 64, 24, 201, 195 })返回 (0 )|
| g_线程ID | 整数型 | | | | g_就绪事件 | 整数型 | | | | g_msg指针 | 整数型 | | |
|
| CreateThread | 整数型 | | |
| kernel32 | |
| CreateThread | |
| 线程安全标志 | 整数型 | | | | 初始栈空间大小 | 整数型 | | | | 要执行的函数地址 | 通用型 | | | | 附加参数 | 整数型 | | | | 创建选项标志 | 整数型 | | | | 接收返回线程ID的变量 | 整数型 | | |
|
| PostThreadMessageA | 整数型 | | |
| user32.dll | |
| PostThreadMessageA | |
| dwThreadId | 整数型 | | | | Msg | 整数型 | | | | wParam | 整数型 | | | | lParam | 整数型 | | |
|
| GetMessageA | 整数型 | | |
| user32.dll | |
| GetMessageA | |
| lpMsg | 整数型 | | | | hWnd | 整数型 | | | | wMsgFilterMin | 整数型 | | | | wMsgFilterMax | 整数型 | | |
|
| PeekMessageA | 整数型 | | |
| user32.dll | |
| PeekMessageA | |
| lpMsg | 整数型 | | | | hWnd | 整数型 | | | | wMsgFilterMin | 整数型 | | | | wMsgFilterMax | 整数型 | | | | wRemoveMsg | 整数型 | | |
|
| GetCurrentThreadId | 整数型 | | |
| kernel32.dll | |
| GetCurrentThreadId | |
|
| CreateEventA | 整数型 | | |
| kernel32.dll | |
| CreateEventA | |
| lpEventAttributes | 整数型 | | | | bManualReset | 逻辑型 | | | | bInitialState | 逻辑型 | | | | lpName | 整数型 | | |
|
| SetEvent | 逻辑型 | | |
| kernel32.dll | |
| SetEvent | |
| hEvent | 整数型 | | |
|
| WaitForSingleObject | 整数型 | | |
| kernel32.dll | |
| WaitForSingleObject | |
| hHandle | 整数型 | | | | dwMilliseconds | 整数型 | | |
|
| CloseHandle | 逻辑型 | | |
| kernel32.dll | |
| CloseHandle | |
| hObject | 整数型 | | |
|
| HeapAlloc | 整数型 | | |
| kernel32.dll | |
| HeapAlloc | |
| hHeap | 整数型 | | | | dwFlags | 整数型 | | | | dwBytes | 整数型 | | |
|
| HeapFree | 逻辑型 | | |
| kernel32.dll | |
| HeapFree | |
| hHeap | 整数型 | | | | dwFlags | 整数型 | | | | lpMem | 整数型 | | |
|