1. 程式人生 > >處理CFileDialog 調用出錯(我的電腦 空白, 空指標)

處理CFileDialog 調用出錯(我的電腦 空白, 空指標)

(1)CoInitializeEx(0, COINIT_MULTITHREADED); 會與CFileDialog衝突
會導致CFileDialog開啟的對話方塊中“我的電腦”空白,無內容顯示。

解決:最後是兩者不要放在同一個執行緒中。也可以將CoInitialize(NULL)替換CoInitializeEx(0, COINIT_MULTITHREADED);

(2)有時呼叫CFileDialog會出現:Unhandledexception in *.exe (KERNEL32.dll)0xc0000005:Access Violation 的錯誤框。
並且CFileDialog對話方塊物件會(當時的返回值顯示 m_filedialog {CFileDialog hWnd=0x00000000})

這個時候處理方法就是自己new出一個CFileDialog:

   CFileDialog *dlg = new CFileDialog(TRUE,0,0, OFN_HIDEREADONLY/*|OFN_OVERWRITEPROMPT|OFN_EXPLORER*/,filter);

if(dlg)
  delete [] dlg ;



相關連結:
http://topic.csdn.net/u/20081008/11/c4b44920-9ded-4fe0-8a49-4748b4a6ee32.html?1282615798