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