_T("D:\122.txt")【字符集問題】或【類型轉換問題】
阿新 • • 發佈:2017-07-26
屬性 處理程序 -c dword 多字節字符集 height .get ans cst
項目->屬性->常規->字符集->使用多字節字符集!時用_T("Filename"),
貌似不是字符集的問題!
1、使用替換,,,後均可以運行通過。
CString str;
str = pBuf;
MessageBox(str);
2、若不替換則僅僅當使用
使用多字節字符集!時用_T("Filename"),方可!
而使用 Unicode 字符和L"Filename"不行!
初始代碼:
void CweFileView::OnFileWritefile() { // TODO: 在此添加命令處理程序代碼CFile file(_T("D:\\122.txt"), CFile::modeCreate | CFile::modeWrite); file.Write("IOIOIOPP", strlen("IOIOIOPP")); file.Close(); } void CweFileView::OnFileReadfile() { // TODO: 在此添加命令處理程序代碼 CFile file(_T("D:\\122.txt"),CFile::modeRead); char *pBuf; DWORD dwFileLen; dwFileLen=file.GetLength(); pBuf=new char[dwFileLen+1]; pBuf[dwFileLen]=0; file.Read(pBuf,dwFileLen); file.Close(); MessageBox(pBuf); }
的錯誤為:error C2664: “int CWnd::MessageBoxW(LPCTSTR,LPCTSTR,UINT)”: 無法將參數 1 從“char *”轉換為“LPCTSTR”
若,不加_T("Filename")或L"Filename"會報錯;
沒有與參數列表匹配的構造函數實例CFile::CFile
若改為使用 Unicode 字符:
則應使用L:
CFile file(L"D:\\122.txt", CFile::modeCreate | CFile::modeWrite);
CFile file(L"D:\\122.txt",CFile::modeRead);
但會出現錯誤為:error C2664: “int CWnd::MessageBoxW(LPCTSTR,LPCTSTR,UINT)”: 無法將參數 1 從“char *”轉換為“LPCTSTR”
-------------------------------------------
-------------------
此時修改代碼,加入
CString str;
str=pBuf;
MessageBox(str);
轉換一下(from超):
原代碼也同樣修改:ok了!
CString str;
str = pBuf;
MessageBox(str);
CString str; str = pBuf; MessageBox(str);
_T("D:\\122.txt")【字符集問題】或【類型轉換問題】