• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數據加載中……

            COM與DLL

            com英文為Component Object Model(組件對象模型),是微軟生產軟件組件的標準。
            它是構造二進制兼容軟件組件的規范,不管組件應用何種語言編寫只要遵循com規范就可以
            相互直接通信。提出com規范主要是為了滿足: 
            1.程序的快速開發,可以將一個大型的工程分成若干個com組件同時開發。 
            2.可以動態的插入或卸載com組件。 
            3.可以隱藏或封裝com組件內部的實現細節。
            com組件可以由不同的語言進行編寫,但com組件之間的通信是通過組件的接口來實現的,
            com組件接口的實現是統一的,它采用的是虛擬函數表(VTBL)形式。虛擬函數表中包含了
            組件函數的一組指針,我們可以通過這組指針來獲取我們想要通信的組件函數的內存地址。 
            dll(動態鏈接庫)是包含函數和數據的模塊的集合。它可以導出數據也可以導出函數以供
            其它的dll調用。dll的加載可以通過靜態鏈接和動態鏈接兩種方式。 
            1.靜態鏈接時將所要鏈接的dll模塊以二進制的形式編譯進其他模塊。 
            2.動態鏈接指調用模塊在運行時加載DLL,使用LoadLibrary函數或LoadLibraryEx
            函數將dll 加載到進程的地址空間,并調用GetProcAddress函數以獲取導出的 DLL 
            函數的地址。 
            動態加載dll的優點: 
            1.DLL可節省內存并減少交換。通過在內存中共享 DLL 的單個副本,多個進程可以同時
            使用一個DLL。相比之下,對于使用靜態鏈接庫構建的每一個應用程序,Windows 都要
            在內存中為其加載庫代碼的一個副本。 
            2.DLL 可節省磁盤空間。 多個應用程序可以共享磁盤上的一個 DLL 副本。相比之下,
            使用靜態 鏈接庫構建的每一個應用程序都需要讓鏈接到程序文件映像的庫代碼作為一個
            單獨的專用副本。 
            dllcom的關系:com是一種規范,按照是com規范實現的dll可以被視為com組件,
            例如我們用mfc建立的Active X控件工程其中的接口封裝是靠idl描述的所以可以視為
            com組件。而且從上面關于comdll的說明可以看出com組件的接口是一組具有特定規范的
            函數,所以com組件可以別視為dlldll不一定是com組件。 
            comDLL最大的區別就是: dll是以函數集合的方式來調用的是編程語言相關的VC必須
            加上extern "C"...COM是以interface的方式提供給用戶使用的是一種二進制的調用
            規范,是與編程語言無關的,它使用idl接口定義語言來描述自己使用類繼承來實現自己的功能
            和方法.DLL只有DLL一種形勢,里面可任意定義函數無限制,只能運行在本機上 而COM 
            DLLEXE兩種存在形勢: COM所在的DLL中必須導出四個函數: 
            dllgetobjectclass, dllregisterserver, dllunregisterserver, 
            dllunloadnow 
            這四個函數各有作用,有些是提供給COM管理器用的,通過CLSIDIID來使用,有些是提供
            給注冊機用的. 
            COM結合MTS,就是COM+, DCOM的高級版本,提供了更為強大和安全的分布式COM服務, 
            DCOM運行在不同的機器上 用proxystub來實現遠程接口的本地映射 二者從執行速度來
            說 二者相差無幾 但是啟動速度DLL要比COM快!

             

            posted on 2011-01-10 12:37 肥仔 閱讀(1597) 評論(0)  編輯 收藏 引用 所屬分類: COM

            中文字幕久久亚洲一区| 婷婷久久综合九色综合绿巨人| 久久精品国产亚洲AV忘忧草18| 国内精品久久九九国产精品| 亚洲色大成网站WWW久久九九| 狠狠精品久久久无码中文字幕| 国产69精品久久久久9999APGF| 无码国内精品久久人妻| 色欲综合久久躁天天躁蜜桃| 久久成人国产精品二三区| 国产成人无码精品久久久久免费 | 久久99热这里只有精品国产| 99精品国产99久久久久久97| 久久综合综合久久97色| 久久久久久久久久久精品尤物| 狠狠88综合久久久久综合网| 一本久久a久久精品综合夜夜| yy6080久久| 99久久亚洲综合精品网站| 女人高潮久久久叫人喷水| 色综合久久最新中文字幕| 无码人妻久久一区二区三区 | 久久久青草久久久青草| 国产精品日韩欧美久久综合| 久久超乳爆乳中文字幕| 2021最新久久久视精品爱| 久久夜色精品国产| 99久久99久久精品国产片果冻| 久久久久久亚洲精品成人| 精品无码人妻久久久久久| 久久综合狠狠色综合伊人| AV色综合久久天堂AV色综合在| 亚洲AV无码久久精品蜜桃| 久久精品不卡| 久久er国产精品免费观看8| 97精品伊人久久久大香线蕉| 精品久久久无码人妻中文字幕豆芽| 亚洲成色www久久网站夜月| 久久天天躁夜夜躁狠狠| 久久99这里只有精品国产| 亚洲国产精品成人AV无码久久综合影院|