https://bbs.csdn.net/topics/392205617?page=1(論壇討論鏈接)
關於這個Assertion Failed 論壇上面有討論,但是都沒有給出一個明確的解決方法,只是籠統的說到句柄資源(對話框)的申請或者注冊沒成功。
既然網上也找不到一個適當的解決方法,自己也無能為力,最后想出了一招最原始,也最有效的方法。
再說我的方法之前先說明一下我的這個錯誤是從何時開始出現的:
由於這並非語法錯誤,出現這種運行時的錯誤比出現語法錯誤要惡心的多。
我在使用MFC的框架編程的時候,發現之前繼承的視圖類CView沒有窗口滾動功能,因此就在源代碼中把所有的CView換成了CScrollView,然后編譯運行(我當然知道這樣改很草率,我也做好了肯定會報錯,並且是很難恢復的錯誤的准備,因此,在這之前我還特地做了備份)。
結果程序編譯並沒有報錯,只是在運行的時候出現了這個鬼東西Assertion Failed!
沒辦法,把我的最原始有最有效地解決辦法搬出來吧:
我又新建了一個MFC框架的項目,這次他的基類不再是CView了,而是CScrollView,本來打算把原來框架中添加的代碼也一並移植過去,但是想了想,還是想要把這個糾纏我很久的bug給解決,因此我一行一行的比對這兩個項目的框架有什么不同,果然就發現了(如下圖),加上這幾行代碼就不會有那個錯誤了。