#include "stdafx.h"#include <iostream> 
#include <fstream> 
#include <string> 
#include<afxwin.h>
using namespace std; 
#define MAX_LENGTH 1024
void main()
{/*
CStdioFile file;
file.Open("text.txt", CFile::modeRead | CFile::typeText);
CString str;
CString strTemp;
while(file.ReadString(strTemp))
{
str += strTemp + "r";
}  
file.Close();*/

CStdioFile file;
if (!file.Open("in.txt", CFile:)) return;
CString strLine;
while (file.ReadString(strLine))
{
cout<<strLine<<endl;
}
file.Close(); 
}
我运行上面的代码,怎么老是出现错误,错误提示为:
error C2664: “CStdioFile::Open”: 不能将参数 1 从“const char [7]”转换为“LPCTSTR”
请问这是由于什么原因造成的,谢谢

解决方案 »

  1.   

    已经解决,原因是要强制类型转换。if (!file.Open(_T("in.txt"), CFile:)) return; 
    这样 就解决了。
      

  2.   

    unicode的问题,你工程是unicode的,所以需要传入unicode字符串才能通过编译
    要用L"text.txt"或者_T("text.txt")
      

  3.   

    LPCTSTR是const TCHAT *
    而TCHAR则是通用字符,它的含义会根据编译环境变化,在多字节字符串环境下,它就是char;在双字节字符串下,它就是宽字符。
    代码中应该尽量使用通用符,这样在可以使用相同的代码在两种字符环境中,只需要设置环境,然后重新编译就可以啦。