我在VC6中的MFC程序正常,为什么在VS2008中的MFC中有错误

下面是错误CStringstr;char*str0;CFileDialogFileDlg(TRUE,"(*.txt)|*.txt","*.txt",OFN_HIDEREA... 下面是错误
CString str;
char* str0;
CFileDialog FileDlg( TRUE , "(*.txt)|*.txt","*.txt" ,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT ,"文本文件(*.txt)");
FileDlg.m_ofn.lpstrInitialDir="C:\\Documents and Settings\\googol\\桌面\\lineinterpolation\\Arc";
if(FileDlg.DoModal()==IDOK)
{
AfxMessageBox( FileDlg.GetPathName() );
str=FileDlg.GetPathName( );
}

str0= (LPSTR)(LPCTSTR)str;
m_cha=str0;
UpdateData(false);
程序
展开
 我来答
1038073164
2014-09-10 · TA获得超过164个赞
知道小有建树答主
回答量:196
采纳率:50%
帮助的人:49万
展开全部
这是由于不同的编译器对程序检查的严格程度不一样,比如说:
char a[20];
char *p = a;
在有些编译器里面编译通过,而在有些编译器里面需要这样赋值char*p = (char*)a;a是一个静态数组,并不是指针,赋值需要强制转换。

程序在vc6.0中移到vs2008中需要注意一个问题,vc6.0中字符一个字节表示,而在vs2008中字符可能一个字节、两个字节或多个字节表示,默认是两个字节表示,可以改成单字节表示。
追问

我需要怎么改正,我按照”项目上右击->属性,左边:配置属性->常规,右边:项目默认值->字符集,将UNICODE字符集改成多字节字符集“这个改的,又出现了error C1083和error C2061.

追答
把程序发到我的邮箱,我下班回去改下,小问题应该很快。我的qq邮箱1275233008@qq.com
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式