m_SendData="sdf";
::SendMessage(AfxGetApp()->m_pMainWnd->m_hWnd,UM_COMOPEN,NULL,&m_SendData);m_SendData是CString 类型的。  
我现在想把m_senData的字符串发出去,好像类型不对,该怎么做?报错如下:
error C2664: 'SendMessageA' : cannot convert parameter 4 from 'class CString *' to 'long'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast

解决方案 »

  1.   

    明显类型不对,一个是字串一个是LONG型。
      

  2.   


    m_SendData这个是变量  ,是和edit控件关联的。
      

  3.   

    首先通过FindWindow取得windows程序的窗口句柄,
    然后通过GetDlgItem取得其中输入框的窗口句柄,
    最后,向该窗口句柄发送WM_CHAR消息即可显示字符
    例如,对于Notepad窗口,可以以如下的方式向其中输入一个'a':
    // 取得记事本的窗口句柄
    HWND hWnd = ::FindWindow( NULL  , "未定标题 - 记事本" );// 取得其中输入框的窗口句柄
    HWND hEdit = ::GetDlgItem( hWnd , 0x0F );  // 这里0x0F是编辑框的ID,可在SPY++中观察得到
     // 向输入框中填写'a'
    ::SendMessage( hEdit , WM_CHAR , (WPARAM)'A' , 0x00000001 );第三个参数为发送的具体内容,第四个参数是发送内容的长度
      

  4.   

    ::SendMessage(AfxGetApp()->m_pMainWnd->m_hWnd,UM_COMOPEN,NULL,(LPARAM)m_SendData.GetBuffer(m_SendData.GetLength())); 
    m_SendData.ReleaseBuffer();