为什么我运行:
m_IPEdit1.GetAddress(B1[0],B1[1],B1[2],B1[3]);
时总是出错呢?错在哪?

解决方案 »

  1.   

    看看函数原型:
    int GetAddress( BYTE& nField0, BYTE& nField1, BYTE& nField2, BYTE& nField3 );B1[0]表示的是数组元素的值,而不是其地址!应该是:
    m_IPEdit1.GetAddress(&B1[0],&B1[1],&B1[2],&B1[3]);
      

  2.   

    To:common_man(谢安王导)
    是老兄看马虎了,:)
    原型中是引用传递,不是指针传递。
      

  3.   

    应该没问题的啊,下面是摘自一本书上的代码:
    // In CMyDialog's class declaration
    BYTE m_nField1, m_nField2, m_nField3, m_nField4;
        
    BOOL CMyDialog::OnInitDialog ()
    {
        CDialog::OnInitDialog ();
        m_wndIPAddress.SetAddress (m_nField1, m_nField2,
            m_nField3, m_nField4);
        return TRUE;
    }void CMyDialog::OnOK ()
    {
        m_wndIPAddress.GetAddress (m_nField1, m_nField2,
            m_nField3, m_nField4);
        CDialog::OnOK ();
    }
      

  4.   

    To:楼主
    你的B1数组是BYTE型的吗?你是不是用了char型的?
    如果是,应该改成BYTE类型的。引用没有指针那么灵活的隐式转换。
      

  5.   

    CString str;
    GetDlgItem(IDC_IPADDRESS)->GetWindowText(str);