vs2008提示 error C2664: “CWnd::MessageBoxW”: 不能将參數 1 從“const char [17]”轉換為“LPCTSTR”
在外面用vs2005編寫mfc程式的時候經常要MessageBox("提示資訊")函數,在vc6.0是沒有問題的,但是在vs2005卻會有下面的提示:
error C2664: “CWnd::MessageBoxW”: 不能将參數 1 從“const char [17]”轉換為“LPCTSTR”
這個錯誤提示的原因是VS2005預設使用的是UNICODE字元集,在參數轉換時會出錯
解決方法很簡單。
方法一:
MessageBox(_T("你已經送出成功。"));
即在參數前加上_T
方法二:
在建立項目時,把使用UNICODE字元集取消,如下圖:
方法三:
選擇“項目”-》“XXX項目屬性”-》“配置屬性”-》“正常”選項中,把“字元集”改為“使用多位元組字元集”,然後确定。如下圖:
//加載套接字
if(!AfxSocketInit())
{
AfxMessageBox("加載套接字庫失敗!");
//AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
//AfxMessageBox("加載套接字庫失敗",0,0);
return FALSE;
}
原因同上
in_chat.cpp(59): error C2665: “AfxMessageBox”: 2 個重載中沒有一個可以轉換所有參數類型
1> c:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxwin.h(6655): 可能是“int AfxMessageBox(LPCTSTR,UINT,UINT)”
1> c:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxwin.h(6657): 或 “int AfxMessageBox(UINT,UINT,UINT)”