用CFileDialog时经常打开失败,有时还没看到对话框就死机了,有时看到了就卡死了。用的是下面的代码实现打开功能。我在程序开始时用了CoInitialize,这是后面加XML要用的.不知它会不会和CFileDialog有冲突.LPCTSTR szFilter ="Chart Files (*.xml)|*.xml||"; CFileDialog* pdlg=new CFileDialog(TRUE,NULL ,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT ,szFilter,NULL);  
  if(pdlg->DoModal() == IDOK)
   {
、、、、、、、
}
  delete pdlg;

解决方案 »

  1.   

    这点代码看不出问题,跟CoInitialize应该没关系
    打开怎么个失败法,死机是系统死了还是你程序死了,
      

  2.   

    CFileDialog fpd(FALSE,".txt",NULL,OFN_HIDEREADONLY,"txtÎļþ|*.txt|ËùÓÐÎļþ|*.*",this);
    if(fpd.DoModal()==IDOK )
    干嘛要指针方式的? 你后面参数NULL可能有问题
      

  3.   

    如果不使用VC6的SDK,用版本高一些的SDK的话,使用CFileDialog dlg会有问题。
      

  4.   

    你的代码应该是没有什么问题的,死机应该是别的原因,和CoInitialize应该没有关系
      

  5.   

    pdlg->DoModal() 
    对话框能这样用吗?用了指针,又用DoModal()!
      

  6.   

    这个用NULL没有问题的,不知道搂住所谓的打开失败是什么意思