“试图执行的操作不受支持”解决
“試圖執行的操作不受支持”解決
今天在改寫一個對話框程序時, 不斷彈出了”試圖執行的操作不受支持”的警告對話框, 如果點擊”確定”忽略這個警告, 程序也能正常運行(并不會異常退出), 但在程序運行的某些時候, 會不斷彈出這樣的警告對話框.
這到底是怎么回事, 百思不得其解, 而且很奇怪這是個警告對話框, 不是錯誤對話框(一般錯誤對話框彈出后, 點擊”確定”, 程序會退出的).
在網上查詢一下, 有如下內容:
應當是資源的問題,或者某個資源在resource.h中有定義,但是窗體中被你刪除了…遇到這種情況一般都是資源造成的,你好好檢察一下你的窗體資源 .
這個突然提醒了我, 我記得我之前刪除了界面中的幾個資源, 會不會是這些資源相關的內容我沒有刪除干凈, 于是在Debug模式下跟蹤, 終于在” DoDataExchange(CDataExchange* pDX)”中發現如下代碼” DDX_Check(pDX, IDC_CHECK_ADD_ASIC_NOTE, m_bIsAddAsicNote)”(其中資源ID為” IDC_CHECK_ADD_ASIC_NOTE”的CheckBox正是我所刪除的一個資源, 咦, 既然我已經刪除了這個資源, 那為什么在編譯的時候程序不警告或報錯呢. 在查找了一下, 發現原來在Resource.h中我也沒有將” IDC_CHECK_ADD_ASIC_NOTE”刪除, 所以導致, 編譯時程序只是靜態的分析Resource.h存在這個CheckBox的資源ID” IDC_CHECK_ADD_ASIC_NOTE”, 于是就假定這個資源存在, 故” DDX_Check(pDX, IDC_CHECK_ADD_ASIC_NOTE, m_bIsAddAsicNote)”處也不會報錯, 但在程序運行時, 由于我多處調用”UpdatData(FALSE)”, 而這個函數會調用” DoDataExchange(CDataExchange* pDX)”函數, 而此時程序才發現其實” IDC_CHECK_ADD_ASIC_NOTE”對應的資源不存在, 所以就會彈出上面的警告了.
除此之外, 有時Resource.h中資源ID如果有重復, 也會導致上面的問題.
總結
以上是生活随笔為你收集整理的“试图执行的操作不受支持”解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《软件过程管理》 第九章 软件过程的评估
- 下一篇: 京东2019春招算法工程师笔试题-牛牛下