CString m_buf;
CStatic *m_static;
char *szName;
...
m_buf.Format(":%s",szName);
m_static->SetWindowText(m_buf);为什么显示出来时乱码?
CStatic *m_static;
char *szName;
...
m_buf.Format(":%s",szName);
m_static->SetWindowText(m_buf);为什么显示出来时乱码?
vc2008默认是unicode。
改成这样试试:
CString m_buf ;
m_buf = szName;
m_buf = ":" + m_buf;
m_static->SetWindowText(m_buf);
char *szName=NULL;
char str[]="abc";
szname=str
另外,如果工程的语言不是英语的话, 也有可能是工程语言和PC语言不同;
2. m_static->SetWindowText(m_buf); 设断点在1处时szName的确有值,但到2处时szName就变成一个方框了
CStatic *m_static;
char *szName = new char[20];
strcpy( szName, "test" );
m_buf.Format( ":%s", szName );
m_static = (CStatic *)this->GetDlgItem( IDC_STATIC_test );
m_static->SetWindowText( m_buf );
free( szName );
CStatic *m_static;
char *szName;
...
m_buf.Format(_T(":%s"),szName);
m_static->SetWindowText(m_buf);
这种就行了