zoukankan      html  css  js  c++  java
  • _T("D:\122.txt")【字符集问题】或【类型转换问题】

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

    貌似不是字符集的问题!

     1、使用替换,,,后,

    _T("Filename")
    L"Filename"

    均可以运行通过。

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

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

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

    就是字符集的问题!
    使用 Unicode 字符集时会出问题!

    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+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);    

  • 相关阅读:
    js高级-闭包
    js作用域
    js执行上下文与执行上下文栈
    js原型及原型链
    去除数组中重复的元素值
    树[省选联考2020]
    GDOI2020 游记
    Problem b[HAOI2011]
    分零食[JSOI2012]
    移动金币「SDOI2019」
  • 原文地址:https://www.cnblogs.com/wxl845235800/p/7236798.html
Copyright © 2011-2022 走看看