为什么小弟我用CFileDialog类打开文件会出错?提示LPCTSTR有无法转换

为什么我用CFileDialog类打开文件会出错?提示LPCTSTR有无法转换。
为什么我用CFileDialog类打开文件会出错?提示LPCTSTR有无法转换。

char   szFilter[]   =   "Data   files(*.DAT)|*.dat|Save   files(*.ST0)|*.st0|| ";

CFileDialog   dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter);
if(dlg.DoModal()==IDOK)
{
CFile   file;
file.Open(dlg.GetPathName(),CFile::modeRead);

         file.Close();
     }


上面是一个按钮单击后的事件函数,为什么我编译后,提示
错误 1 error   C2664:   “CFileDialog::CFileDialog(BOOL,LPCTSTR,LPCTSTR,DWORD,LPCTSTR,CWnd   *,DWORD)”:   不能将参数   5   从“char   [50]”转换为“LPCTSTR” g:\work\visual   studio   2005\projects\opentxt\opentxt\opentxtdlg.cpp 203


请各位朋友帮忙看一下,谢谢!

------解决方案--------------------
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,(LPCTSTR)szFilter);

强制转行不????

------解决方案--------------------

CString strFilter = _T( "Data files(*.DAT)|*.dat|Save files(*.ST0)|*.st0|| ");

CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,strFilter );
if(dlg.DoModal()==IDOK)
{
CFile file;
file.Open(dlg.GetPathName(),CFile::modeRead);

   file.Close();
     }
------解决方案--------------------
不能将参数 5 从“char [50]”转换为“LPCTSTR”g:\work\visual studio 2005\projects\opentxt\opentxt\opentxtdlg.cpp203


向楼上的可以

不过哥们你看看你的字符串是不是已经超过50了
------解决方案--------------------
楼上的方法也可以。
但是楼主你是用的VC6.0吗?我试过你的代码了,没有error啊~
------解决方案--------------------
我觉得用CString好,
试试吧