我用vs2008生成一个MFC对话框应用程序
放上一个CEDIT控件,想去的主机名显示在其中定义了一个Getname()方法如下:
void CGetNameDlg::Getname(void)
{
char hostname[128]; gethostname(hostname,128);
CString name;
name=hostname;
CWnd* pWnd = GetDlgItem(IDC_EDIT1);
pWnd->SetWindowText(name);
}
     可是现实的全是乱码,怎么回事?高手指教

解决方案 »

  1.   

    pWnd-> SetWindowText(hostname); 
    如果编译报错,说明你的是UNICODE工程,需要转换编码。
      

  2.   

    c:\documents and settings\administrator\桌面\myprojects\getname\getname\getnamedlg.cpp(164) : error C2664: “CWnd::SetWindowTextW”: 不能将参数 1 从“char [128]”转换为“LPCTSTR”
    报错,怎么转啊,谢谢
      

  3.   

    还有我发现gethostname(hostname,128)根本得不到主机名,返回值不是0。怎么回事