Error: no data exchange control with ID xx 錯誤分析

VS2008sp1,windows XP sp3,debug

Error: no data exchange control with ID xx

該問題出現時可以通過編譯,但是運行的時候會觸發斷點。

在處理對話框控件的時候出現該問題。已知的原因是因爲刪除了關聯了變量的控件後出現的。

網上有原因解釋:1、因爲刪除控件的同時沒能刪除其關聯的變量

                                2、因爲控件ID重複

本人按照網上說明處理了一番,刪除了DoDataExchange()下的所有類似DDX_Control(pDX, ID, m);DDX_TEXT(pDX,ID,m)的語句,從頭文件刪除了相關的變量,然後重新關聯了所有的控件,在resource.h中修改了重複ID的控件的值,發現仍不能解決問題。

然後我清理了所有解決方案,再次生成,編譯,運行,這回問題解決了。

本人分析說:有時候我們編程時候在做一些修改後以爲沒問題,而運行卻出問題,說明有些地方並沒有隨着我們更改而更改,這些部分可能就是需要編譯器所做的,而編譯器並沒有做。爲什麼沒有做呢?因爲我們直接進行了生成、編譯,而編譯器沒有從頭開始進行編譯鏈接,編譯器只是對它認爲需要更改的部分進行了更改,而實際需要更改的要比編譯器認爲需要更改的多了,使得需要更改的部分被落下了一些,所以運行時出現了錯誤。網上應該有相應的資料,我還沒來得及查找,暫時先在這猜測着。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章