天天看點

error C2664: “CWnd::MessageBoxW”: 不能将參數 1 從“const char [17]”轉換為“LPCTSTR”

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字元集取消,如下圖:

error C2664: “CWnd::MessageBoxW”: 不能将參數 1 從“const char [17]”轉換為“LPCTSTR”

方法三:

選擇“項目”-》“XXX項目屬性”-》“配置屬性”-》“正常”選項中,把“字元集”改為“使用多位元組字元集”,然後确定。如下圖:

error C2664: “CWnd::MessageBoxW”: 不能将參數 1 從“const char [17]”轉換為“LPCTSTR”
//加載套接字
	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)”
           

繼續閱讀