初始化里有这样两个自定义函数:
//取得主机名和IP地址
GetLocalHostName(m_sHostName);
GetIPAddress(m_sHostName,m_sIPAddress);头文件里,这两个函数的定义是这样的:
public:

int GetLocalHostName(CString& sHostName);
int GetIPAddress(const CString& sHostName,CString& sIPAddress);
编译时: 'm_sHostName' : undeclared identifier
     :  'm_sIPAddress' : undeclared identifier
那我在定义m_sHostName, 和m_sIPAddress两个形参应该定义成什么类型啊.请高手不吝指教,小弟感激涕零.ASAP!

解决方案 »

  1.   

    就CString类型啊 貌似你的m_sHostName,m_sIPAddress)没有定义  细细检查一下。是映射的变量 看看映射是否正确
      

  2.   

    可以了,高手在帮我讲解下线程的使用不太懂.初始化已经开始了线程,为何线程里还要重新开始啊?AfxEndThread(0)又是结束哪个线程,一头雾水,(这是个服务器端程序)
    BOOL CSocketDlg::OnInitDialog()
    {
    ........
    AfxBeginThread(&thread,0);
    ...
    }
    全局函数
    int ithd=1;
    UNIT thread(LPVOID p)
    {
    if(loop)
      {   if{
           }
    else{...
         AfxBeginThread(thread,0);
         .....
        }
      }
    AfxEndThread(0);
    ...
    }
      

  3.   

    就是结束调用AfxEndThread(0);的这个线程,在这里就是thread
      

  4.   

    我对线程的用法不了解,请高手讲解下下面线程是怎么执行的(服务器端).问题:1.初始化里的AfxEndThread(0)执行时,全局函数从哪里开始执行.2.初始化里的AfxEndThread(0)语句跟全局函数中的AfxEndThread(0)冲突吗.3.函数中的AfxEndThread(0)语句开始执行时,程序跳转到哪里.4.最好讲解下此程序的意图.谢谢,请高手捧场,让小弟对线程,不再畏惧.
    BOOL CSocketDlg::OnInitDialog()
    {
    .......
    AfxEndThread(0);
    return 0;
    }
    全局函数:
    UNIT  thread(LPVOID p)
    {if(loop)
       { if()  {...
               }
         else  {...
                AfxEndThread(0);            ...
                }
       } 
     AfxEndThread(0);
     return 0;
    }