char BASED_CODE szFilter[] = "dnr Files (*.dnr)|*.dnr"; 
CFileDialog dlgOpen(TRUE,NULL,NULL,0,szFilter); if (IDOK == dlgOpen.DoModal())
{
::CoCreateInstance(CLSID_DNReport, NULL, CLSCTX_INPROC_SERVER, IID_IDNReport, (void**)&objDNReport); objDNReport->ReadXMLFile(dlgOpen.GetPathName().AllocSysString(), &bVar);
m_DNRDesigner.ReportToDesigner(objDNReport);  
}                 
就是这段程序,我设计是用来打开一个对话框来选择所需要的文件的,这里默认显示的是所有文件供用户选择,开始在VC6.0中编译时没有错误的,后来在VS2008中编译报错如下:
f:\makedesigner\make_designer\make_designer\make_designerdlg.cpp(135) : error C2664: “CFileDialog::CFileDialog(BOOL,LPCTSTR,LPCTSTR,DWORD,LPCTSTR,CWnd *,DWORD,BOOL)”: 不能将参数 5 从“char [24]”转换为“LPCTSTR”
1>        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换