使用命令列註冊和反註冊OPC 伺服器的實現方法

2021-05-25 02:30:50 字數 2613 閱讀 5202

使用命令列註冊和反註冊opc

伺服器的實現方法

method of registering and unregistering opc server by command line

陳冲mail:[email protected]

【內容摘要】本文通過乙個具體的事例,講述如何通過命令列註冊及反註冊

opc伺服器程式,並給出了

visual c++

程式**,希望能給初學者對註冊和反註冊

opc伺服器提供乙個本質的理解,對於其它元件程式註冊的原理也是相通的。

一、

前言

基於com

(元件物件模型

)的元件程式是伺服器程式(

opc伺服器實際上就是一種工業上使用的

com元件),以

exe或者

dll的形式提供給客戶程式使用。普通的

dll程式如果通過

loadlibrary

函式顯式載入,需要給定

dll的路徑和名稱;而元件程式的路徑對於客戶程式來說是透明的,客戶程式只要通過元件程式的

progid

來載入元件程式即可。客戶程式在呼叫元件程式的時候,首先要通過登錄檔查詢到元件程式的路徑並進行載入,所以元件程式一定會實現把自己的資訊寫到登錄檔的功能,這些資訊主要包括

clsid

、progid

、程式的路徑等。在使用元件之前一定會首先把這些資訊寫到登錄檔裡。 在

pc上,對於註冊

dll元件程式可以使用

regsvr32

命令來註冊元件程式,元件程式一定要實現

dllregisterserver

這個api

函式,具體如圖

-1所示:

而對於exe

元件程式可以在命令列中輸入元件的路徑和名稱後,加上

regserver

引數,如圖

-2所示:

當然使用者還可以通過編寫乙個

reg檔案,然後執行該檔案也可以實現註冊元件的功能,對於

exe元件可以執行它,然後再註冊。本文著重講述圖

-1和圖

-2的實現方法。

二、dll

元件的註冊與反註冊

目前,在

window ce

平台上開發

opc伺服器程式一定是做成

dll的元件,也就是程序內元件。需要注意的是,在該平台上是使用

regsvrce

命令來實現註冊元件程式的;

registerserver

函式就是實現寫登錄檔的功能。

extern "c" hresult __stdcall dllregisterserver()

反註冊其實就是執行刪除登錄檔的動作,在

dll裡要實現

dllunregisterserver

這個api

函式。在命令列中執行

regsvr32 /u

在加具體的

dll路徑和名稱就會呼叫

dllunregisterserver

這個api

函式,實現反註冊。

extern "c" hresult __stdcall dllunregisterserver()

三、exe

元件的註冊與反註冊

裡實現如下**:

tcharsztokens = _t("-/");

cstring helppath;

cstringsvrname, svrdescrip;

inti;

i = helppath.reversefind('//');

helppath = helppath.left(i+1);

helppath += "hurcoopcsvr.exe";

svrname = "hurco.opcserver";

svrdescrip = "hurco software opc server ";

cstring tempcmdline(m_lpcmdline);

lptstr lpsztoken = _tcstok(tempcmdline.getbuffer(1), sztokens);

while (lpsztoken != null)

else if (_tcsicmp(lpsztoken, _t("regserver"))==0)//註冊

lpsztoken = _tcstok(null, sztokens);

}在命令列中輸入元件的路徑和名稱後,加上

unregserver

引數就可以實現

exe元件的反註冊。

使用Windows命令列reg控制登錄檔鍵值

熟悉windows作業系統的朋友可能都知道,windows作業系統下的登錄檔相當於系統的資料庫 部分軟體將自己的配置資訊都放在登錄檔裡面,而登錄檔的破壞可以直接導致系統的崩潰。而熟悉登錄檔的朋友對 登錄檔編輯器 regedit.exe 一點也不陌生,它提供了乙個圖形化管理登錄檔的操作介面,本文要介紹...

mysql使用命令列工具 MySQL命令列工具

shell mysql user user name password your password db name shell mysql help shell mysql 選項 protocol mysql 命令 有些命令mysql可以自己解釋。要檢視這些命令,在mysql 提示下輸入help或 ...

RHEL 7 命令列註冊和啟用訂閱服務

前一陣子,紅帽推出了開發者免費使用訂閱功能,只要註冊成為紅帽開發者就可以免費使用包括 rhel7 在內的開發套件。今天我們就來看一看怎麼使用命令列來快速註冊和啟用訂閱服務,以後就可以方便地使用紅帽官方源了。在rhel系統中註冊和使用subscription是兩個過程,但是可以使用下面命令一次完成兩個...