Windows 註冊和取消註冊乙個dll或者ocx

2021-09-08 17:25:38 字數 3249 閱讀 5837

原文:windows 註冊和取消註冊乙個dll或者ocx

一、dll是什麼

dll,是dynamic link library 的縮寫形式,中文名稱為動態鏈結庫。

dll是乙個包含可由多個程式同時使用的**和資料的庫,dll不是可執行檔案。動態鏈結提供了一種方法,使程序可以呼叫不屬於其可執行**的函式。函式的可執行**位於乙個 dll 中,該 dll 包含乙個或多個已被編譯、鏈結並與使用它們的程序分開儲存的函式。dll 還有助於共享資料和資源。多個應用程式可同時訪問記憶體中單個dll 副本的內容。dll 是乙個包含可由多個程式同時使用的**和資料的庫。

二、ocx是什麼

ocx是ocx控制項的簡稱。ocx控制項全稱為物件類別擴充元件(object linking and embedding (ole) control extension)。

它的作用其實和剛才談到的dll檔案特別相像,其實所謂的ole我們平時已經非常熟悉了,簡單地說就像在word中可以使用excel資料,寫字板中可以嵌入檔案等等這些功能。打個比方的話,剪貼簿就像是個簡單的資料共享,而ole則是一種「物件共享」。

控制項的本質是微軟公司的物件鏈結和嵌入(ole)標準。由於它充分利用了物件導向的優點,使得程式效率得到了很大的提高,從而得到了廣泛的應用。國外有很多公司就是專門製作各種各樣控制項的。控制項的最早形式是以.vbx的格式出現的,後來變成了.ocx。

三、為什麼要註冊dll和ocx

如果dll檔案或者ocx檔案沒有註冊,系統登錄檔中就沒有這個dll檔案或者ocx檔案資訊.那麼等到呼叫的時候,因為不知道這個dll檔案或者ocx檔案的位置,只能報告沒有這個dll或者ocx檔案.所以這時候就需要註冊dll了.

dll檔案或者ocx檔案註冊後會在登錄檔裡生成該元件的唯一guid號碼,程式引用的這個元件才能找到dll或者ocx檔案,才能使用該dll或者ocx元件的功能

【小提示】 windows系統的dll因為在安裝時已經註冊好了,因此不用註冊,但是如果因為某種情況系統無法識別這些dll檔案時,還是需要我們手動再註冊一遍。

三、通過命令註冊或者取消註冊dll或ocx

開始--執行--cmd,開啟命令列工具。

註冊命令: regsvr32  [dll或者ocx的絕對路徑]     該路徑可以複製,也可以直接將ocx或者dll檔案拖入cmd視窗,自動得到路徑,較為方便。

取消註冊命令:regsvr32  /u [dll或者ocx的絕對路徑]

四、新增右鍵快捷選單來註冊dll或ocx

經常要註冊或者取消dll與ocx,老是輸入cmd命令太麻煩,於是新建兩個右鍵快捷選單,方便多了。 

1、開啟登錄檔      依次開啟 「開始/執行」,輸入「regedit」 

2、新增右鍵註冊dll元件快捷選單     依次開啟「hkey_classes_root\dllfile」,右鍵選擇「新建項」,新建項「shell」(如果已經有了則不用新建),再在其下以同樣的方法新建「register」。其中,「register」就是對.dll或.ocx右鍵彈出的選單中項名,再在其下建「command」,雙擊「預設值」將其改為「regsvr32 %1」。

3、新增右鍵取消註冊dll元件快捷選單    依次開啟「hkey_classes_roor\dllfile\shell」,右鍵選擇「新建項」,新建項「unregister」。其中,「unregister」就是對.dll或.ocx右鍵彈出的選單中的選項名,再在其下建「command」,雙擊「預設值」將其改為「regsvr32 %1 /u」。

4、對ocx的註冊和取消註冊     同理,需要注意的是把上面2和3中的「dllfile」改為「ocxfile」即可。 

5、桌面f5重新整理。找乙個dll或者ocx檔案,右鍵試一下吧。多方便!

6、鄭重宣告:該方法對路徑中有空格的失效,比如路徑名中包含c:/program files的。只能通過cmd命令搞定。

(通過新增雙引號已解決,如)

[hkey_classes_root\dllfile\shell\register dll\command]

@="regsvr32 %1"

改為[hkey_classes_root\dllfile\shell\register dll\command] 

@="regsvr32\"%1\"" 

7、至於刪除右鍵選單,在登錄檔刪除對應項即可

注:也可以複製以下檔案到記事本,然後儲存成.reg檔案執行即可

新增右鍵選單

windows registry editor version 5.00

[hkey_classes_root\dllfile\shell\register dll\command]

@="regsvr32 %1"

[hkey_classes_root\dllfile\shell\unregister dll\command]

@="regsvr32 /u %1"

[hkey_classes_root\ocxfile\shell\register ocx\command]

@="regsvr32 %1"

[hkey_classes_root\ocxfile\shell\unregister ocx\command]

@="regsvr32 /u %1"

windows registry editor version 5.00

[hkey_classes_root\dllfile\shell\register dll\command]

@="regsvr32 \"%1\"

"[hkey_classes_root\dllfile\shell\unregister dll\command]

@="regsvr32 /u \"%1\"

"[hkey_classes_root\ocxfile\shell\register ocx\command]

@="regsvr32 \"%1\"

"[hkey_classes_root\ocxfile\shell\unregister ocx\command]

@="regsvr32 /u \"%1\"

"

刪除右鍵選單

windows registry editor version 5.00

[-hkey_classes_root\dllfile\shell\]

[-hkey_classes_root\ocxfile\shell\]

Windows 註冊和取消註冊乙個dll或者ocx

一 dll是什麼 dll,是dynamic link library 的縮寫形式,中文名稱為動態鏈結庫。dll是乙個包含可由多個程式同時使用的 和資料的庫,dll不是可執行檔案。動態鏈結提供了一種方法,使程序可以呼叫不屬於其可執行 的函式。函式的可執行 位於乙個 dll中,該 dll 包含乙個或多個...

Windows 註冊和取消註冊乙個dll或者ocx

原文 windows 註冊和取消註冊乙個dll或者ocx 一 dll是什麼 dll,是dynamic link library 的縮寫形式,中文名稱為動態鏈結庫。dll是乙個包含可由多個程式同時使用的 和資料的庫,dll不是可執行檔案。動態鏈結提供了一種方法,使程序可以呼叫不屬於其可執行 的函式。函...

註冊和取消EventHandler 事件繫結

通常註冊事件處理程式有三種方式 通過部署 feature,以 xml 宣告方式註冊到指定列表模板 通過部署 feature,以 xml 宣告方式註冊到指定內容模型 通過程式設計,訪問 splist spweb.eventreceivers 屬性的 add 方法動態註冊 這裡展示第三種方法。priva...