開(kāi)發(fā)環(huán)境VS2005
tempratureall[]為一個(gè)整數(shù)數(shù)組且已經(jīng)賦值
CDC *pDC=GetDC();
CString s;
s.Format("%d", tempratureall[1]);
pDC->TextOut(20,39,s);
總是提示出錯(cuò)
error C2664: “void ATL::CStringT <BaseType,StringTraits>::Format(const wchar_t *,...)”: 不能將參數(shù) 1 從“const char [3]”轉(zhuǎn)換為“const wchar_t *”
網(wǎng)友回復(fù):itoa
網(wǎng)友回復(fù):s.Format( _T("%d"), tempratureall[1]);
網(wǎng)友回復(fù):用itoa也試過(guò)了也不行
itoa(tempratureall[1],&s,10);
網(wǎng)友回復(fù):s.Format(_T("%d"), tempratureall[1]);
////////////////////////////////////////////////////////////////////////////////////////////////
我建立了以個(gè)簡(jiǎn)單的MFC框架,然后在
void CMy1View::OnDraw(CDC* pDC)
函數(shù)中插入了如下的代碼
CString strOutput;
strOutput.Format("%s","Hello World!");
pDC -> TextOut(0,0,strOutput);
為什么編譯的時(shí)候出現(xiàn)了
錯(cuò)誤 1 error C2664: “void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t *,...)”: 不能將參數(shù) 1 從“const char [3]”轉(zhuǎn)換為“const wchar_t *”
這個(gè)錯(cuò)誤??
很不理解,書上也是這么寫的。。。我初學(xué),真不知道怎么辦了。
如果就加
pDC -> TextOut(0,0,"Hello World!");
也出現(xiàn)錯(cuò)誤
錯(cuò)誤 1 error C2664: “BOOL CDC::TextOutW(int,int,const CString &)”: 不能將參數(shù) 3 從“const char [13]”轉(zhuǎn)換為“const CString &”
為什么呢?
////////
最佳答案
你在頭文件里包含#include <tchar.h>
然后這樣初始化
strOutput.Format(_T("%s"),_T("Hello World!"));
因?yàn)槟J(rèn)情況下,字符串都是unicode的形式,
用unicode在nt以上的系統(tǒng)是一個(gè)很好的方式