项目->属性->常规->字符集->使用多字节字符集!时用_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);
时间: 2024-12-30 20:17:26