MFC CFileDialog DoModal()無法彈出窗口,直接返回IDCANCEL


最近需要用VS2017在MFC中加一個文件瀏覽窗口,采用了如下方式

1 CFileDialog Dlg(TRUE);
2 int res = Dlg.DoModal();
3 if(res == IDOK)
4 {
5     //TODO
6 }

但無論用什么方式,就是無法彈出窗口,並且DoModal()直接返回IDCANCEL;

使用CommDlgExtendError()查詢錯誤,返回2,查詢錯誤發現是初始化失敗,沒有足夠內存;

於是查詢項目->屬性->鏈接器->系統,發現從前將堆棧保留大小和堆棧提交大小都設置為100000000,將兩個100000000都刪除后,再運行程序,發現可以彈出文件瀏覽窗口了。

后來看到了一篇博客,找到了具體原因(定義了一個超大的數組,占太大空間,改為了malloc-free動態內存分配就可以了)

參考博客地址:https://www.bbsmax.com/A/xl56bGn15r/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM