项目->属性->常规->字符集->使用多字节字符集!时用_T("Filename"),

_T("D:\\122.txt")【字符集问题】或【类型转换问题】-LMLPHP

貌似不是字符集的问题!

 1、使用替换,,,后,

_T("Filename")
L"Filename"

均可以运行通过。

CString str;
str = pBuf;
MessageBox(str);

2、若不替换则仅仅当使用:

使用多字节字符集!时用_T("Filename"),方可!
而使用 Unicode 字符和L
"Filename"不行!

就是字符集的问题!
使用 Unicode 字符集时会出问题!
_T("D:\\122.txt")【字符集问题】或【类型转换问题】-LMLPHP

error C2664: “CFile::CFile(const CFile &)”: 无法将参数 1 从“const char [13]”转换为“LPCTSTR”

改成

多字节字符集即可。

初始代码:

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+];
pBuf[dwFileLen]=;
file.Read(pBuf,dwFileLen);
file.Close();
MessageBox(pBuf);
}

的错误为:error C2664: “int CWnd::MessageBoxW(LPCTSTR,LPCTSTR,UINT)”: 无法将参数 1 从“char *”转换为“LPCTSTR”

_T("D:\\122.txt")【字符集问题】或【类型转换问题】-LMLPHP

若,不加_T("Filename")或L"Filename"会报错;

没有与参数列表匹配的构造函数实例CFile::CFile





若改为使用 Unicode 字符:

_T("D:\\122.txt")【字符集问题】或【类型转换问题】-LMLPHP

则应使用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”

_T("D:\\122.txt")【字符集问题】或【类型转换问题】-LMLPHP

-------------------------------------------

_T("D:\\122.txt")【字符集问题】或【类型转换问题】-LMLPHP

-------------------

此时修改代码,加入

CString str;
str=pBuf;
MessageBox(str);

转换一下(from超):

_T("D:\\122.txt")【字符集问题】或【类型转换问题】-LMLPHP

原代码也同样修改:ok了!

CString str;
str = pBuf;
MessageBox(str);

    CString str;
str = pBuf;
MessageBox(str);

_T("D:\\122.txt")【字符集问题】或【类型转换问题】-LMLPHP

05-11 20:30