返回> 网站首页 

线程间通信

yoours2015-03-02 13:53:19 阅读 1799

简介一边听听音乐,一边写写文章。

// 线程间通信.cpp : 定义控制台应用程序的入口点。 
// 
#include "stdafx.h" 
#include <Windows.h> 
#define WM_USER_MSG WM_USER+102 
COPYDATASTRUCT SendText; 
DWORD WINAPI Thread(LPVOID lpParameter) 

    COPYDATASTRUCT re_SendText; 
    char re_size[100]; 
    MSG msg; 
    BOOL bRet; 
    while ((bRet = GetMessage(&msg, NULL, 00)) != 0
    { 
        if(bRet  ==  -1
        { 
            //异常情况 
        } 
        else 
        { 
            switch(msg.message) 
            { 
            case WM_QUIT: 
                //退出消息循环 
                break
 
            case WM_USER_MSG: 
                printf("接收到消息\n"); 
                memcpy(&re_SendText, (const void *)msg.lParam, sizeof(COPYDATASTRUCT)); 
                memcpy(re_size, (const void *)re_SendText.lpData, re_SendText.cbData); 
                printf("消息内容是:%s\n", re_size); 
                break
 
            default
                break
            } 
        } 
    } 

 
int _tmain(int argc, _TCHAR *argv[]) 

    DWORD  m_dwID; 
    COPYDATASTRUCT SendText; 
    char name[100] = "hello"
    SendText.dwData = 3
    SendText.lpData = name; 
    SendText.cbData = strlen(name) + 1
    HANDLE m_hThread = CreateThread(NULL, 0, Thread, 00, &m_dwID); 
    Sleep(1000);//这里不延迟,就收不到消息 
    PostThreadMessage(m_dwID, WM_USER_MSG, 0, (LPARAM)&SendText); 
    Sleep(1000);//这里不延迟,就收不到消息 
    getchar(); 
    return 0

 
微信小程序扫码登陆

文章评论

1799人参与,0条评论