刚开始学习VC
m_list无法添加字符,红色部分编译提示:“left of 'AddString' must point to class/struct/union”
但是蓝色标记的部分却没有错误提示m_list是类CClientDlg的一个成员变量CListBox m_list;
文件开头也加了 #include "ClientDlg.h";
m_list->AddString的方法我也试过部分代码如下:
    SOCKET ConnectSocket(char* IpAddress,UINT Port)
{
//建立sock
sockaddr_in  socketAddress;
HOSTENT *hp;
int nAddrLen;

WSADATA wsaData;
if(WSAStartup(WINSOCK_VERSION,&wsaData))
 {    m_list.AddString("Winsock无法初始化!");
         WSACleanup();
         return 0;
}
m_list.AddString("客户端开始创建SOCKET。");
hp=gethostbyname(IpAddress);
memcpy((char*)&socketAddress.sin_addr, (char*)hp->h_addr, hp->h_length);
socketAddress.sin_family=AF_INET;
socketAddress.sin_port=htons(Port);
nAddrLen = sizeof(socketAddress);
SOCKET sock = socket(AF_INET,SOCK_STREAM,0);
if(sock==INVALID_SOCKET)
{
         m_list.AddString("无法创建客户端socket!");
         return false;
}
int connected=connect(sock,(sockaddr*)&socketAddress,nAddrLen);
if(connected)
    {
    m_list.AddString("无法连接服务器。");
        return 0;
}
return sock;
}
 
void CClientDlg::OnButton2() 
{           //传送控制命令ctlSocket
m_CtlSocket=ConnectSocket(m_IP,m_Port);
if(!m_CtlSocket)           
{
    MessageBox("不能连接服务器!\n请稍候再登录!");
return ;
}
UpdateData(true);
if(m_user.GetLength()<=0)
{
MessageBox("请输入用户名!");
return ;
}
else
         m_list.AddString(m_user+"发起认证请求!");
}

解决方案 »

  1.   

    OnButton2是CClientDlg类的成员函数,m_list是CClientDlg类的成员变量,所以在OnButton2中访问m_list没有问题从你给的代码看,ConnectSocket好象不是CClientDlg类的成员函数,所以不能直接访问m_list,需要通过CClientDlg对象访问
      

  2.   

    大概意思我懂了但是怎么在这个ConnectSocket()函数中调用CClientDlg窗口对象的m_list呢?
    大家应该可以看出来ConnectSocket()是我在CClientDlg中定义的一个函数。具体点,贴个代码举个例子啊
    什么AfxGetMainWnd(),GetDlgItem,findwindow我看了还不是很懂
      

  3.   

    ((CClientDlg *)AfxGetMainWnd())->m_list.AddString("xxxx");
      

  4.   

    ConnectSocket()不是CClientDlg的成员函数,这样会有问题啊!
      

  5.   

    就一个窗口,在按钮事件OnButton2()中调用ConnectSocket(char* IpAddress,UINT Port)
    有个控件CListBox m_list,用来显示socket连接信息的
      

  6.   

    ConnectSocket这个函数是哪个类的函数?还是你自己写的C函数
      

  7.   

    很奇异的现象,刚刚编译竟然通过了,谢谢xsgluozi