自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

VB.NET組件封裝實(shí)現(xiàn)功能體驗(yàn)

開發(fā) 后端
VB.NET組件封裝的實(shí)現(xiàn),可以幫助開發(fā)人員實(shí)現(xiàn)com以供非托管的代碼使用。其具體的操作步驟將會在本文中給出,希望對大家有所幫助。

VB.NET的應(yīng)用到底能幫助我們帶來些什么呢?只有在實(shí)際應(yīng)用中才能真正的體會到它強(qiáng)大的功能。下面就先從VB.NET組件封裝來看看它的一些主要作用。從這個角度來仔細(xì)的分析一下這款編程語言的優(yōu)點(diǎn)。#t#

前幾天一直在研究如何將VB.NET組件封裝之后可以實(shí)現(xiàn)com供非托管代碼調(diào)用。上網(wǎng)查資料,查書,試驗(yàn),***測試了vb.net,c#,vc++.net 等多種語言,都沒有搞定。在論壇上發(fā)了帖子。雖然有回復(fù),但是只是給了些資料。資料看了又看,反復(fù)的研讀。照著例子一步一步地做。但總是有些地方?jīng)]有成功。正在絕望中。一個朋友給了我簡單的答案。我在高興的同時也感慨自己的愚鈍和呆笨。

原來在vs.net 2005中實(shí)現(xiàn)VB.NET組件封裝是如此的簡單。

方法如下:

新建一個項(xiàng)目,選擇Visual Basic \ Window \ 類庫,假設(shè)項(xiàng)目名為ClassLibrary1

然后 在solution manager(解決方案資源管理器)中,將新創(chuàng)建的Class1.vb文件刪除。

然后在solution manager(解決方案資源管理器)中的項(xiàng)目上點(diǎn)擊右鍵,在彈出的菜單上點(diǎn)擊添加 \ 類,在彈出的對話框中選擇com類,修改類的名稱(本例中修改為ComC.vb),后點(diǎn)擊添加按鈕。

則會看到ComC.vb的代碼如下:

  1. < ComClass(ComC.ClassId, 
    ComC.InterfaceId, ComC.EventsId)>   
  2. _ Public Class ComCClass ComC   
  3. COM GUID#Region "COM GUID"   
  4. ' 這些 GUID 提供此類的 COM 標(biāo)識   
  5. ' 及其 COM 接口。若更改它們,則現(xiàn)有的   
  6. ' 客戶端將不再能訪問此類。   
  7. Public Const ClassId As String = 
    "97451265-d75d-4d5a-a39d-6c4b68f8dd99"   
  8. Public Const InterfaceId As String = 
    "5015b9e7-64e6-4750-8c28-5c51d968f1d6"   
  9. Public Const EventsId As String = 
    "1afd03f4-5974-445e-8ca2-a8e9be3432d7"   
  10. #End Region   
  11. ' 可創(chuàng)建的 COM 類必須具有一個不帶參數(shù)的   
  12. Public Sub New()   
  13. ' 否則, 將不會在   
  14. ' COM 注冊表中注冊此類,且無法通過   
  15. ' CreateObject 創(chuàng)建此類。   
  16. Public Sub New()Sub New()   
  17. MyBase.New()   
  18. End Sub   
  19. End Class 

現(xiàn)在只要在這個類中添加public 的成員即可,假如我們添加一個方法Northsnow

  1. < ComClass(ComC.ClassId, 
    ComC.InterfaceId, ComC.EventsId)>   
  2. _ Public Class ComCClass ComC   
  3. COM GUID#Region "COM GUID"   
  4. ' 這些 GUID 提供此類的 COM 標(biāo)識   
  5. ' 及其 COM 接口。若更改它們,則現(xiàn)有的   
  6. ' 客戶端將不再能訪問此類。   
  7. Public Const ClassId As String = 
    "97451265-d75d-4d5a-a39d-6c4b68f8dd99"   
  8. Public Const InterfaceId As String = 
    "5015b9e7-64e6-4750-8c28-5c51d968f1d6"   
  9. Public Const EventsId As String = 
    "1afd03f4-5974-445e-8ca2-a8e9be3432d7"   
  10. #End Region   
  11. ' 可創(chuàng)建的 COM 類必須具有一個不帶參數(shù)的   
  12. Public Sub New()   
  13. ' 否則, 將不會在   
  14. ' COM 注冊表中注冊此類,且無法通過   
  15. ' CreateObject 創(chuàng)建此類。   
  16. Public Sub New()Sub New()   
  17. MyBase.New()   
  18. End Sub   
  19. Public Sub Northsnow()Sub 
    Northsnow(ByVal ss As String) MsgBox(ss)   
  20. End Sub   
  21. End Class  

然后就可以編譯,編譯后,在pb中添加如下的代碼來調(diào)用這個com

  1. int intValue   
  2. oleobject objOle   
  3. objOle=create OLEObject  
  4. intValue=objOle.
    connecttonewobject
    ("ClassLibrary1.ComC")  
  5. objOLe.Northsnow
    ("I am Northsnow")  

運(yùn)行這個VB.NET組件封裝的實(shí)現(xiàn)程序就會看到效果。

我在C#中沒有看到類似的com類.

現(xiàn)在這個棘手的難題解決了之后,工作可以繼續(xù)了。心理挺高興的。但是在高興之余又有一種奇怪的感覺。

VB.NET的確的很強(qiáng)。把很多復(fù)雜的東西都包裝起來幫我們實(shí)現(xiàn)。我們在享受輕松的解決難題的時候,距離底層技術(shù)卻越來越遠(yuǎn)。不知道是喜是悲。

 

責(zé)任編輯:曹凱 來源: IT168
相關(guān)推薦

2010-01-12 10:48:54

VB.NET LIST

2010-01-22 18:14:49

VB.NET菜單組件

2010-01-22 15:25:46

VB.NET Time

2010-01-19 10:03:35

VB.NET Labe

2009-10-20 14:09:05

VB.NET反射功能

2009-10-15 11:11:08

VB.NET Text

2009-11-02 14:48:45

VB.NET HOOK

2010-01-13 09:45:53

VB.NET Arra

2009-11-10 13:27:30

VB.NET RND(

2010-01-22 16:39:46

VB.NET添加自動查

2010-01-22 15:37:02

VB.NET監(jiān)控類

2009-11-03 11:06:40

VB.NET事件

2009-10-26 09:50:20

VB.NET Star

2009-10-13 10:21:58

VB.NET實(shí)現(xiàn)Web

2009-10-12 14:32:40

VB.NET實(shí)現(xiàn)定時關(guān)

2009-10-23 13:22:25

VB.NET實(shí)現(xiàn)拖動圖

2010-01-08 15:41:36

VB.NET窗口關(guān)閉

2009-10-29 09:40:35

VB.NET Text

2010-01-18 19:04:29

VB.NET組件疊加

2009-10-23 15:35:42

VB.NET實(shí)用教程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號