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