[問題] VC開啟檔案對話視窗崩潰
目前使用VC2008開發,想使用開始檔案的對話視窗功能
目前知道有兩種作法,一個是CFileDialog,另一個是OpenFileName
很不幸的,CFileDialog因為mfc版本的問題,導致新舊mfc在某個結構上size大小不同,
很容易造成記憶體讀寫溢位,蓋到其他記憶體的資料,導致程式崩潰
是有查到兩種作法,一個是用new,一個是修改WIN_NT的define
第一種作法我試過,但還是偶爾會掛掉。第二種方法我不是很想用,
除非我以後都不用新版本,所以我改用OpenFileName
但OpenFileName一樣有問題,網路上查是因為pfd.dll之類的會用到com
我不太清楚這個,因為我沒調用com,不過我有照著處理方式做,增加了
CoInitialize(NULL); (CoInitializeEx我在某些電腦調用會掛掉),
雖然變成穩定很多,但是偶爾還是有崩潰的情形發生,不知道有人有方法
解決,或是有更好得API可以使用嗎??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.66.251.14
※ 編輯: clarkman 來自: 203.66.251.14 (11/26 11:21)
推
11/26 14:56, , 1F
11/26 14:56, 1F
這個就是第二種OpenFileName,我試過了
→
11/26 14:57, , 2F
11/26 14:57, 2F
第一種比較難試,因為是因為mfc的OPENFILENAME結構大小不同的關係,所以要看
剛好在那個結構後面的記憶體資料被蓋掉會不會造成問題
http://zhidao.baidu.com/question/43843597
第二種方法比較好試,開啟開始檔案的對話視窗後,先隨便找一個檔案,滑鼠
移到上面,然後等他浮出檔案的資訊後,選取消,再重開一兩次,就會crash
http://blog.csdn.net/dyw/archive/2007/09/02/1768857.aspx
※ 編輯: clarkman 來自: 203.66.251.14 (11/26 16:09)
推
11/26 16:49, , 3F
11/26 16:49, 3F
→
11/26 16:50, , 4F
11/26 16:50, 4F
→
11/26 16:51, , 5F
11/26 16:51, 5F
→
11/26 16:51, , 6F
11/26 16:51, 6F
→
11/26 16:52, , 7F
11/26 16:52, 7F
→
11/26 20:52, , 8F
11/26 20:52, 8F
→
11/26 20:52, , 9F
11/26 20:52, 9F
→
11/26 20:53, , 10F
11/26 20:53, 10F
→
11/26 20:53, , 11F
11/26 20:53, 11F
→
11/26 20:53, , 12F
11/26 20:53, 12F
推
11/26 20:58, , 13F
11/26 20:58, 13F
→
11/26 20:58, , 14F
11/26 20:58, 14F
→
11/26 20:59, , 15F
11/26 20:59, 15F
→
11/26 21:19, , 16F
11/26 21:19, 16F
→
11/26 21:20, , 17F
11/26 21:20, 17F
→
11/26 21:22, , 18F
11/26 21:22, 18F
→
11/26 21:22, , 19F
11/26 21:22, 19F
→
11/26 21:23, , 20F
11/26 21:23, 20F
→
11/26 21:23, , 21F
11/26 21:23, 21F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章