码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-07-26 00:16:32      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:round   类型   strlen   没有   通过   --   from   height   neu   

项目->属性->常规->字符集->使用多字节字符集!时用_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")【字符集问题】或【类型转换问题】

标签:round   类型   strlen   没有   通过   --   from   height   neu   

原文地址:http://www.cnblogs.com/wxl845235800/p/7236798.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!