九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
我對COM的理解
COM,組件對象模型,通俗說就是COM就是提供了一種編程的架構(gòu)。通過COM規(guī)范規(guī)定了COM組件應(yīng)該實(shí)現(xiàn)的
一些接口和接口函數(shù),其他程序通過固定的方法使用這些函數(shù),在Windows平臺下,所謂的固定方法通過提供
的各種GUID在注冊表中找到COM組件,然后調(diào)用指定的DLL或者EXE(通過ROT)調(diào)用指定的函數(shù),以獲得所需要的
接口的指針,所謂的接口的指針其實(shí)就是指向函數(shù)指針數(shù)組的指針,通過接口指針調(diào)用COM組件提供的服務(wù)。
    如果不借助ATL等類庫等實(shí)現(xiàn)COM組件,其實(shí)也很簡單,只需要牢記下面幾點(diǎn)就可以了:
    1、使用IDL在idl文件中定義接口。因?yàn)镃OM是與語言無關(guān)的,所以需要一種各種語言等能懂的語言來定義
    接口。使用MIDL編譯編寫好的idl文件可以獲得一個.h文件,從此文件中就可以看出在idl文件中定義的
    接口被編譯成了C++中的純虛類。從這里也可以得到:
        A、純虛類的內(nèi)存結(jié)構(gòu)確實(shí)是和COM所要求的內(nèi)存結(jié)構(gòu)相同,所以使用純虛類來定義COM接口;
        B、其實(shí)可以不需要idl文件直接使用C++語言定義COM接口,那又為什么需要呢?簡單言之,就是為了
        實(shí)現(xiàn)COM的語言無關(guān)性。使用C++定義的接口不能被其他語言所使用,當(dāng)使用IDL語言編寫的idl文件
        被MIDL編譯之后可以生成一個.tlb的類型庫文件,此文件可以被其他語言使用。
    2、接口的實(shí)現(xiàn)其實(shí)很簡單,就是在繼承了所定義的接口的派生類當(dāng)中實(shí)現(xiàn)就可以了。一個派生類可以繼承
    自多個接口。為了實(shí)現(xiàn)一些功能可以繼承自一些標(biāo)準(zhǔn)的COM接口,比如:IDispatch、IMarshl等,但是一般
    都需要實(shí)現(xiàn)IClassFactory或者IClassFactory2接口。類廠接口的作用是提供一個通用的創(chuàng)建組件對象的
    方法。對于進(jìn)程內(nèi)組件在C++中我們可以使用new來創(chuàng)建新的對象,但是對于進(jìn)程外或者是遠(yuǎn)程的組件,new
    好像是無能為力了,所以提供類廠接口,由類廠和代理打交道來完成對象的創(chuàng)建。
    3、組件程序中實(shí)現(xiàn)相關(guān)的導(dǎo)出函數(shù),以便被其他應(yīng)用程序調(diào)用,比如注冊函數(shù)、生命周期控制函數(shù)等等。
    4、最后要牢記如果要有不清楚的地方多看MSDN,熟記一些常用的標(biāo)準(zhǔn)接口,對于套間、列集等要特別注意。
   
    無論是在MFC中使用嵌套類來實(shí)現(xiàn)COM,還是ATL中使用的多重繼承來實(shí)現(xiàn)COM,抑或是使用ODL語言來編寫
接口的定義,其最基本都是上面所說的,只不過MFC和ATL中多了一些宏來替代直接使用C++編寫的各種類定義、
函數(shù)定義等,這樣使程序看起來簡潔,但是對于認(rèn)識COM的原理其實(shí)并沒有好處,所以在使用這些宏的時候看看
它們的定義會幫助你更深刻的認(rèn)識COM。ODL語言只是IDL語言的擴(kuò)充,其實(shí)沒有什么特別的地方,只要多看看,
弄懂了一些關(guān)鍵字的意思就可以了,比如:interface、dispinterface、coclass、import、library、
importlib、defult等等。
    總之要想深刻的認(rèn)識COM,熟練的使用COM編程,就要如Don所說,多動手編程,多使用它們,并考慮它們
是如何的工作起來的。
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/vcleaner/archive/2004/09/24/115334.aspx
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VC知識庫文章 - COM 組件設(shè)計與應(yīng)用(七)——編譯、注冊、調(diào)用
CORBA和COM有哪些區(qū)別?只在OS上嗎?
COM組件設(shè)計與應(yīng)用(十三)
vs2019 Com組件初探-實(shí)現(xiàn)vbs的CreateObject函數(shù)邏輯
在 Simulink 環(huán)境之外編譯集成的代碼
type library類型庫
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服