char* 类型的实参与LPCTSTR类型的形参 不兼容

boolend=false;charp[100];introw=0,column=0;fstreaminfile("book.txt",ios::in);if(!infi... bool end=false;
char p[100];
int row=0,column=0;
fstream infile("book.txt",ios::in);
if(!infile)
{
MessageBox(L"no stored message!");
return ;
}
while(1)
{
m_list.InsertItem(m_list.GetItemCount(),NULL,NULL);
for(column=0;column<3;column++)
{
if(!(infile>>p))
{
end=true;
break;
}
m_list.SetItemText(row,column,p);
}
row++;
if(end==true)
{
break;
}

}

m_list.SetItemText(row,column,p);报错了 我用的是vs2010
展开
 我来答
13coolcool
2013-01-30
知道答主
回答量:16
采纳率:0%
帮助的人:11.7万
展开全部
解决方法:
菜单 项目 -> 属性 (打开属性页) -> 配置属性 -> 常规 -> 字符集
单前选中的应该是“使用Unicode字符集”,改为“使用多字节字符集”
beddy1
2012-05-06 · TA获得超过1989个赞
知道大有可为答主
回答量:2271
采纳率:0%
帮助的人:2204万
展开全部
有支持以Unicode编码读取文件的wfstream类,在写MFC,最好不要用fstream这样的类来操作文件,转换数据很麻烦,MFC有自己的File类读取文件。
LPCTSTR 是 Const TCHAR* ,TCHAR 是一个宏,可以是char,也可以是wchar_t,看编译选项的。为了你的代码能够适用这两种情况,你应该注意。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a652570001
推荐于2017-09-11 · TA获得超过129个赞
知道答主
回答量:153
采纳率:0%
帮助的人:172万
展开全部
LPCTSTR使用的unicode编码,和char*不能直接赋值,要转换一下,使用这个函数MultiByteToWideChar转换就行了,vs默认的是unicode
追问
怎么写啊? 我是菜鸟啊。。。。。
追答
帮你上网搜了个答案还可以
我们只需要将MultiByteToWideChar()的第四个形参设为-1,即可返回所需的短字符数组空间的个数:
DWORD dwNum = MultiByteToWideChar (CP_ACP, 0, sText, -1, NULL, 0);

接下来,我们只需要分配响应的数组空间:
wchar_t *pwText;
pwText = new wchar_t[dwNum];
if(!pwText)
{
delete []pwText;
}

接着,我们就可以着手进行转换了.在这里以转换成ASCII码做为例子:
MultiByteToWideChar (CP_ACP, 0, psText, -1, sText, dwSize);

最后,使用完毕当然要记得释放占用的内存:
delete []psText;
这是别人的电脑,没安装msdn哈哈,你照着做就行了,我以前实现成功过,还不行我就帮你写
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式