BOOL PostThreadMessage(
  DWORD idThread, // thread identifier
  UINT Msg,       // message
  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter
);//Code as following
TCHAR szMsg[MAX_PATH]={"This is a string for DEMO!"};
int lenString=strlen(szMsg);
PostThreadMessage(idManThread,WM_MAINTHREAD_MSG,(WPARAM)lenString,(LPARAM)szMsg);

解决方案 »

  1.   

    鎶婂瓧绗︿覆鐨勫湴鍧€鏀惧湪WPARAM鍙傛暟鎴栬€匧PARAM鍙傛暟涓€
      

  2.   

    首先用new分配一段内存,然后把要传的数据放入其中,再用PostMessage把指针传给目标窗口,在目标窗口接受万这个字符串数组后一定要用delete释放内存。
    例如:
    在DLL中写:
    要传的数据放在data中
    char * p;
    p= new char[strlen(data)+1];
    sprintf(p,"%s",data);
    PostMessage(hwnd,WM_USER_DATA,(WPARAM)p,0);
    在应用程序中接受语句为:
    OnData(WPARAM wParam,LPARAM lParam )
    {
      CString str = CString(wParam);
     delete wParam;
    }