我在vc中用这个语句输出的是乱码
怎么办?能否给出原因和一个成功输出的例子
dc.TextOut( 0, 0, "小强" );
直接用在我这里就没问题。
在OnDraw()
{
pDC->TextOut(100,100,"小强");
}
我这里一点问题都没有。
CString s="小华";
pDC->TextOut(100,100,s);
首先你必须知道在你的数据库里面字符串时使用unicode存储的还是使用ansi存储的,
如果是unicode的话,在得到字符串之后,强制转换成unicode,然后用wcstombs转换成
mbcs,然后再输出就可以了,或者你可以设置你的工程全部使用unicode来编译
m_pSet->m_sname[5] = \0; //因“小华”是4个字节,加上结束符号\0
pDC->TextOut(100,100,m_pSet->m_sname);
pDC->TextOut(100,100,_T(m_pSet->m_sname));
在OnDraw()
{
pDC->TextOut(100,100,"小强");
}
我这里一点问题都没有。
pDC->TextOut(100,100,_T(m_pSet->m_sname));
int i = sizeof(_pSet->m_sname);
m_pSet->m_sname[i] = \0; //加上结束符
我用过odbc但是没有出问题,你可以把部分源码mail我,我给你解决。
support@dreamcnsoft.com
pDC->TextOut(pText.x+1000,pText.y,m_pMyData->m_sname); //这句输出是黑色块乱码
这里设断点(F9),用Debug方式看,见到有相应字符吗?若没有则是前面可能输入错了,即根本没输进去;若有,则在最后面加上\0。