同意1楼,注册一下就好了。
或者调用SerialPort类,不用mscomm控件。

解决方案 »

  1.   

    mscomm是注册过的,重新又注册了一遍,还是不行,何解?
    以前都是用Delphi的,第一次用VC,只知道串口用mscomm或者或者WinAPI写,原来还有个串口类啊…
      

  2.   

    应该是m_MsComm1.Create失败了。你断点调试一下,看看输入参数对不对
      

  3.   

    不要用 create , 从 资源 拖一个
      

  4.   

    因为你已从控制面板托了一个控件,因此就不需要再Create了,要想动态建立,就先Destroy再Create,也就是,你托一个控件后,先建立关联这个控件的变量,然后再:m_Comm32.Destroy();m_Comm32.Create(....)的操作.但实际上你不需再动态建立了,你托一个控件后,在建立关联变量时,会提示添加这个控件的类,你可能是光托控件了,但没添加关联变量,所以编绎时报错
      

  5.   

    即:void CAboutDlg::DoDataExchange(CDataExchange* pDX)
    {
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CAboutDlg)
    DDX_Control(pDX, IDC_MSCOMM1, m_MSComm);
    //}}AFX_DATA_MAP
    }create是:
    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    DWORD style=WS_CHILD;//WS_VISIBLE  if(!m_MSComm.Create(NULL,style,CRect(0,0,0,0),this,IDC_MSCOMM1))
    {
    AfxMessageBox("建立串口失败");
    }
    ...
    }
      

  6.   

    http://wenku.baidu.com/link?url=t3gDFI9XPheN6rWunhRbh4hqP7_QHN9rK-XozwcXIL1g1M25eR6XHZCZVfttI-HbT15GYM-xovspb4fyQYorIuEyXuZiRIZ5KycpuGi9o93
      

  7.   

    不管用……
    我的做法就是:
    1.Project->Add to project...,添加MSCOMM控件,然后拖个控件到窗体上,然后Ctrl+F5编译执行,没错,编译完成,但执行程序没反应。
    2.然后又继续试验:添加与IDC_COMM1的关联的control变量:m_MsComm1,DDX_Control(pDX, IDC_MSCOMM1, m_MSComm)神马的都有,然后编译执行,情况还和1里面的一样。
    1、2里的情况无论是我在公司,还是在家测试,结果都一样。
    求解……
    VC6/VC2005/VC2010都试过了,都不能执行……
      

  8.   

    2试完了不行,于是又添加代码:if(!m_MsComm1.Create(NULL, WS_CHILD, CRect(0,0,0,0), this, IDC_MSCOMM1))
    {
      AfxMessageBox("Failed!");
      return -1;
    }还是不行,情况一样……
    我是真不会用VC,太难了,和3*5一样难……35太难了!
      

  9.   

    用SerialPort,我都用这个。MSCOMM是微软的,SerialPort是开源的,还能自己改代码。