>e:\projects\chuankou\chuankou\chuankoudlg.cpp(61) : error C2664: 'DDX_Control' : cannot convert parameter 3 from 'CString' to 'CWnd &'
1>e:\projects\chuankou\chuankou\chuankoudlg.cpp(62) : error C2664: 'DDX_Control' : cannot convert parameter 3 from 'CString' to 'CWnd &'
1>e:\projects\chuankou\chuankou\chuankoudlg.cpp(267) : error C2664: 'CMscomm1::put_Output' : cannot convert parameter 1 from 'HWND' to 'VARIANT'
各位高手,请问出现这种错误,是什么原因呀!可否指点小弟以下,小弟是一个新手。谢谢!

解决方案 »

  1.   

    >e:\projects\chuankou\chuankou\chuankoudlg.cpp(61) : error C2664: 'DDX_Control' : cannot convert parameter 3 from 'CString' to 'CWnd &'
    关联的变量的类型弄错了吧,DDX_Control宏关联的是控制型变量,而DDX_TEXT关联的是值类型的变量
      

  2.   

    谢谢你们!那个我已经搞定了。现在想请教你们一个奇怪的问题:我用那个VS2005使用mscomm控件来编一个简单的串口,编程成功了,也可以传输和显示数据,但是在
    {BEGIN_MESSAGE_MAP(CChuanKouDlg, CDialog)
    .........
     //DDX_Control(pDX, IDC_MSCOMM1, m_strComm);
    END_MESSAGE_MAP()}里面如果使用了DDX_Control(pDX, IDC_MSCOMM1, m_strComm);
    这个运行时按下那个清屏按钮就会死机,而且在其他以注册的计算机上打开来不能发送和显示数据,没反应。(生成的.exe文件是release类型的);但是如果屏蔽了它,可以发送和显示数据,但是在但是在其他计算机上可打开也运行不起。
      

  3.   

    不好意哈!上面“{BEGIN_MESSAGE_MAP(CChuanKouDlg, CDialog)

    END_MESSAGE_MAP()}}”这个抄错了,应该是下面这个函数:void CChuanKouDlg::DoDataExchange(CDataExchange* pDX)
           {
            CDialog::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_MSCOMM1, m_strComm);
    DDX_Text(pDX, IDC_EDIT_TXDATA, m_strEditTx);
    DDX_Text(pDX, IDC_EDIT_RXDATA, m_strEditRx);  
            //DDX_Control(pDX, IDC_MSCOMM1, m_strComm);
          }
    里面的"DDX_Control(pDX, IDC_MSCOMM1, m_strComm);"这个。
    同时补充一句:就是如果屏蔽了DDX_Control(pDX, IDC_MSCOMM1, m_strComm)这个就可以清屏,并且不会死机。但是在其它以注册的机器上不能正常运行。