dll ocx com相關
如果DLL是COM組件的話,一定要注冊;如果是一般的DLL,不用注冊。注冊COM時,在注冊表 HKEY_CLASS_ROOT\CLSID\中會保存有關信息,如DLL的路徑,住所模式等。所以CoCreateInstance()可以找到DLL,這也是為什么將該dll移到他處必須重新注冊的原因。DLL有兩種調用方法:
1.用LoadLiabrary調用,不用注冊。
2.用CoCreateInstance,通過CLSID,必須注冊,目錄沒關系,只是移動位子以后,必須重新注。
【什么是Com組件?】
2.用CoCreateInstance,通過CLSID,必須注冊,目錄沒關系,只是移動位子以后,必須重新注。
【什么是Com?】
COM的全稱是組件對象模型(Component Object Model)。Com是一種規范,提供了二進制一級的跨語言能力。
【什么是Com組件?】
顧名思義就是指實現了com規范的組件,他分為進程內組件、進程外組件和分布式組件(DCOM),進程內組件一般是使用DLL技術封裝的(ocx也是一種特殊 的COM組件),進程外組件和分布式組件一般都是使用exe封裝。dll和調用者同一個進程,dll如果crash,會使調用者也crash;exe和調用者不在同一個進程,他crash不會使調用者crash。dll性能好,因為在同一個進程,不用列集。
【什么是DLL?】
【OCX和DLL的區別】
ocx為后綴名的ActiveX控件是一種比較特殊的DLL
,它的基礎是OLE和COM,是有交互界面的可視化控,定義了控件的屬性和方法,定義控件可引發的事件的響應。我們通常說的.DLL為后綴名的文件是一個包含函數和數據的模塊集合,可以被其它應用程序共享的程序模塊。
【OLE、ActveX、COM 發展過程】
【什么是DLL?】
DLL文件即動態鏈接庫文件,是一種可執行文件,它允許程序共享執行特殊任務所必需的代碼和其他資源,一般來說,DLL是一種磁盤文件。dll、DRV、FON、SYS和許多以.EXE為擴展名的系統文件都可以是DLL。它由全局數據、服務函數和資源組成,在運行時被系統加載到調用進程的虛擬空間中,成為調用進程的一部分。如果與其它 DLL 之間沒有沖突,該文件通常映射到進程虛擬空間的同一地址上。DLL 模塊中包含各種導出函數,用于向外界提供服務。DLL 可以有自己的數據段,但沒有自己的堆棧,使用與調用它的應用程序相同的堆棧模式;DLL 在內存中只有一個實例;DLL 實現了代碼封裝性;DLL 的編制與具體的編程語言及編譯器無關。微軟的Visual C++支持三種DLL,它們分別是Non-MFC Dll(非MFC動態庫)、Regular Dll(常規DLL)、Extension Dll(擴展DLL)。
下表說明了 Windows 操作系統中的一些作為 DLL 實現的文件:
下表說明了 Windows 操作系統中的一些作為 DLL 實現的文件:
• | ActiveX 控件 (.ocx) 文件 ActiveX 控件的一個示例是日歷控件,它使您可以從日歷中選擇日期。 |
• | 控制面板 (.cpl) 文件 .cpl 文件的一個示例是位于控制面板中的項。每個項都是一個專用 DLL。 |
• | 設備驅動程序 (.drv) 文件 設備驅動程序的一個示例是控制打印到打印機的打印機驅動程序。 |
ocx為后綴名的ActiveX控件是一種比較特殊的DLL
,它的基礎是OLE和COM,是有交互界面的可視化控,定義了控件的屬性和方法,定義控件可引發的事件的響應。我們通常說的.DLL為后綴名的文件是一個包含函數和數據的模塊集合,可以被其它應用程序共享的程序模塊。
【OLE、ActveX、COM 發展過程】
都是微軟的一些技術標準。Ole比較老后來發展成Activex,再后來發展成為COM。ocx/dll是擴展名。Activex有兩種擴展名ocx和dll。實際上你可以把它們的擴暫名字調,COM作為ActiveX的更新技術,擴展名也有可能是dll, DLL文件還有可能是動態鏈接庫(.dll擴展名)。主要是裝載一些函數,可以動態加載。