很多第一次使用外殼通用控件 (Shell common controls) 的新手碰到的問題之一是:他們經(jīng)常忘記調(diào)用 InitCommonControls 。 但是如果你有機(jī)會查看這個函數(shù)的反匯編代碼,則你會發(fā)現(xiàn):這個函數(shù)實(shí)際上不做任何事情,就像另外一個函數(shù) FlushInstructionCache 一樣。
在長壽等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站建設(shè),長壽網(wǎng)站建設(shè)費(fèi)用合理。既然這個函數(shù)什么都不做,那我們?yōu)槭裁匆{(diào)用它呢?這不是多此一舉嗎?
就像 FlushInstructionCache,重要的不是它會執(zhí)行什么操作,而是你調(diào)用過它。此話怎講?
回想一下,僅在依賴項(xiàng)中列出 lib 文件實(shí)際上并不會導(dǎo)致程序綁定到相應(yīng)的 DLL。你必須在該 DLL 中調(diào)用一個函數(shù),才能為該 DLL 提供導(dǎo)入條目。而 InitCommonControls 就是這個函數(shù)。
如果沒有 InitCommonControls 函數(shù),想要使用外殼通用控件庫的程序?qū)⒃谄鋵?dǎo)入表中沒有對 COMCTL32.DLL 的引用。這意味著當(dāng)程序加載時,不會加載 COMCTL32.DLL,因此不會初始化。這意味著它不會注冊其窗口類。這意味著對 CreateWindow 函數(shù)的調(diào)用失敗,因?yàn)榇翱陬惿形醋浴?/p>
這就是為什么你必須調(diào)用一個什么都不做的函數(shù)。這完全是為了你好。
(當(dāng)然,還有新的 InitCommonControlsEx 函數(shù),它允許你指定要注冊的類。加載 COMCTL32.DLL 時,僅注冊經(jīng)典的 Windows 95 類。對于其他所有內(nèi)容,你必須明確要求要注冊它們。)
總結(jié)嗯,這個理由確實(shí) make sense。
我個人認(rèn)為:要有雞蛋(Shell common controls),就得先有雞(InitCommonControls)。
親愛的猿友:勿杠,杠就是你贏。
Raymond Chen的《The Old New Thing》是我非常喜歡的博客之一,里面有很多關(guān)于Windows的小知識,對于廣大Windows平臺開發(fā)者來說,確實(shí)十分有幫助。
本文來自:《If InitCommonControls doesn’t do anything, why do you have to call it?》
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
文章名稱:我們?yōu)槭裁葱枰{(diào)用InitCommonControls?-創(chuàng)新互聯(lián)
瀏覽路徑:http://aaarwkj.com/article48/jciep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、動態(tài)網(wǎng)站、軟件開發(fā)、ChatGPT、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容