第一篇:
轉貼:
終于試驗成功了!
我在原本隻有win2000 professional 的機器上又安裝了一個win2000 server,并将其配置成主域
控制器,然後在另一台win98機器上用Administrator登入,啟動VB,寫個小程式試了一下,OK!
為避免大家繼續在黑暗中摸索,我現将試驗用的具體例子及步驟詳述如下(一個最簡單的例子):
1、在win2000 server機器上用VB(+SP5.0)建立一個ActiveX(DLL)工程,将工程名字改為“COM_Test”
2、添加一個類子產品,名稱為“ClsAdd”,并輸入如下幾行代碼:
Option Explicit
Public x, y As Integer
Public Function myAdd() As Integer
myAdd = x + y
End Function
3、打開“工程屬性”對話框,選擇“生成”,選中“自動更新”;選擇“部件”,選中“遠端伺服器檔案”(此點很重要,否則編譯時不會生成類型庫檔案COM_Test.TLB)及“二進制相容”,最後“确定”
4、儲存并編譯,生成“Com_Test.dll”
5、打開“控制台/管理/元件服務”,在“COM+應用程式”下利用“COM+應用程式安裝向導”建立一個空的COM+應用程式,名稱為“MyTest”
6、在“MyTest”下,建立“元件”,在“元件安裝向導”中,選擇“安裝新元件”(注意:不要使用“導入已被注冊的元件”),然後将第4步生成的Com_Test.dll及Com_Test.tlb都添加進來(兩個檔案都要!),完成。
7、右擊“COM+應用程式”上方的“我的電腦”,選擇“屬性”,然後在“屬性”對話框中的“預設屬性”頁下,将“預設身份驗證級”改為“無”,确定。
8、右擊“MyTest”,導出用戶端的“應用代理”。注意:在導出對話框中,必須選擇“應用程式代理”而不是“伺服器應用程式”!
9、将導出後的兩個檔案(即應用程式代理)安裝到win98機器上,此時它會在系統資料庫中添加幾處注冊項,并在C:/program files/ComPlus Applications下産生一個以CLISD命名的檔案夾,打開來可看到Com_Test.tlb及Apl82.tmp二個檔案。
注意:win98機器上是沒有Com_Test.dll檔案的,該檔案在win2000 server機器上!
好了,準備工作至此結束,下面在win98機器上來驗證你的COM+配置型元件能否工作。(先用Administrator及密碼登入)
10、啟動VB(+sp5.0),建立一個exe工程,在窗體上放置一個文本框與一個指令按鈕,并在指令按鈕的Click事件中加入代碼:
Dim ox as object
set ox=createobject("Com_Test.ClsAdd","win2000 server 的IP位址")
ox.x=12
ox.y=13
text1.text=ox.myAdd()
執行程式,win2000 server 機器的硬碟燈一陣閃爍之後,Text1中歡快地跳出“25”
---成功了!
以上經驗是在我經過多次痛苦的失敗之後摸索出來的,看來靠别人不如靠自己。
後記:
1、此前,我對有關COM+的内容可以說是一片空白,什麼都不懂,甚至也沒做過有關DCOM的試驗。近來空閑,絡續看了點CSDN論壇中的提問與回答,可沒有一個讓人滿意的。萬不得已,自力更生。
2、個人以為,COM+元件并不一定要配置在主域控制器上,但必須配置在某個域中的某台win 2000 Server上,而不是一般的2000 professional上(可能考慮到安全性)。
3、配置COM+元件不是在win98機器上的,而是在win 2000 Server上。比如,你在win98機器上安裝
應用程式代理後,找不到相應的DLL檔案,隻有TLB檔案(類型庫),該DLL檔案在win 2000 Server上由Dllhost.exe來負責裝入記憶體。
4、若是建立非配置型元件,則第一步中不是建立一個ActiveX(DLL)工程,而是ActiveX(EXE)工程,
因為該exe檔案在服務端不是由Dllhost.exe來負責裝入記憶體,而是自行執行。此種情形下,當然也
就不需要第5至9步的操作了。
以上觀點,隻是個人看法,錯誤難免,歡迎各位不吝賜教。
/
第二篇:
詳細步驟!
1、首先在VB中寫一ActiveX(DLL)元件,工程名為COMTEST。編譯後在另一程式中調用,确認元件工作正常。
2、打開“控制台/管理/元件服務”,在“COM+應用程式”下利用“COM+應用程式安裝向導”建立一個空的COM+應用程式,名稱為“COMTEST”。
3、在“COMTEST”下,建立“元件”,在“元件安裝向導”中,選擇“安裝新元件”(注意:不要使用“導入已被注冊的元件”),然後将生成的dll及tlb都添加進來(兩個檔案都要!),完成。
4、右擊“COM+應用程式”上方的“我的電腦”,選擇“屬性”,然後在“屬性”對話框中的“預設屬性”頁下,将“預設身份驗證級”改為“無”,将“預設模拟級别”改為“匿名”,然後在“預設安全設定”頁下的預設啟動權限裡添加"Everyone",确定。(這裡是匿名關鍵之一)
5、在本地使用者管理裡啟用Guest使用者!(這就是有人說權限裡設定了Everyone仍然無法通路的原因)
6、右擊“COMTEST”,導出用戶端的“應用代理”。注意:在導出對話框中,必須選擇“應用程式代理”而不是“伺服器應用程式”!并将導出的檔案在客戶機安裝!
7、好了!現在就可以在用戶端進行調用了,點選運作後第一次運作在數秒彈出希望看到的運作結果,在激活伺服器的準備狀态以後的運作通常都在半秒内響應完成!(注:VB狀态下加垃圾機器)