成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

VB.NET組件封裝實現功能體驗

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

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

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

原來在vs.net 2005中實現VB.NET組件封裝是如此的簡單。

方法如下:

新建一個項目,選擇Visual Basic \ Window \ 類庫,假設項目名為ClassLibrary1

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

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

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

  1. < ComClass(ComC.ClassId, 
    ComC.InterfaceId, ComC.EventsId)>   
  2. _ Public Class ComCClass ComC   
  3. COM GUID#Region "COM GUID"   
  4. ' 這些 GUID 提供此類的 COM 標識   
  5. ' 及其 COM 接口。若更改它們,則現有的   
  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. ' 可創建的 COM 類必須具有一個不帶參數的   
  12. Public Sub New()   
  13. ' 否則, 將不會在   
  14. ' COM 注冊表中注冊此類,且無法通過   
  15. ' CreateObject 創建此類。   
  16. Public Sub New()Sub New()   
  17. MyBase.New()   
  18. End Sub   
  19. End Class 

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

  1. < ComClass(ComC.ClassId, 
    ComC.InterfaceId, ComC.EventsId)>   
  2. _ Public Class ComCClass ComC   
  3. COM GUID#Region "COM GUID"   
  4. ' 這些 GUID 提供此類的 COM 標識   
  5. ' 及其 COM 接口。若更改它們,則現有的   
  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. ' 可創建的 COM 類必須具有一個不帶參數的   
  12. Public Sub New()   
  13. ' 否則, 將不會在   
  14. ' COM 注冊表中注冊此類,且無法通過   
  15. ' CreateObject 創建此類。   
  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中添加如下的代碼來調用這個com

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

運行這個VB.NET組件封裝的實現程序就會看到效果。

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

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

VB.NET的確的很強。把很多復雜的東西都包裝起來幫我們實現。我們在享受輕松的解決難題的時候,距離底層技術卻越來越遠。不知道是喜是悲。

 

責任編輯:曹凱 來源: IT168
相關推薦

2010-01-12 10:48:54

VB.NET LIST

2010-01-22 18:14:49

VB.NET菜單組件

2010-01-19 10:03:35

VB.NET Labe

2010-01-22 15:25:46

VB.NET Time

2009-10-20 14:09:05

VB.NET反射功能

2009-10-15 11:11:08

VB.NET Text

2010-01-13 09:45:53

VB.NET Arra

2009-11-02 14:48:45

VB.NET HOOK

2010-01-22 16:39:46

VB.NET添加自動查

2009-11-10 13:27:30

VB.NET RND(

2009-10-26 09:50:20

VB.NET Star

2009-11-03 11:06:40

VB.NET事件

2010-01-22 15:37:02

VB.NET監控類

2009-10-12 14:32:40

VB.NET實現定時關

2010-01-08 15:41:36

VB.NET窗口關閉

2009-10-23 13:22:25

VB.NET實現拖動圖

2009-10-13 10:21:58

VB.NET實現Web

2009-10-29 09:40:35

VB.NET Text

2010-01-18 19:04:29

VB.NET組件疊加

2009-10-29 14:02:24

VB和VB.NET比較
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本人和亚洲人zjzjhd | 国产免费让你躁在线视频 | 成人国产免费视频 | 中文字幕日韩三级 | 欧美日韩电影免费观看 | 免费在线观看成人av | 亚洲在线免费 | 99热热热 | 欧美日韩在线播放 | 性欧美精品一区二区三区在线播放 | 欧美日韩一卡 | 欧美日韩在线一区二区三区 | 毛片一级电影 | 亚州av| 久热免费 | 国产毛片久久久 | 久精品久久| 欧美一区二区在线免费观看 | 精品中文字幕一区二区 | wwww.xxxx免费| h片在线看 | 麻豆久久久久 | 91av在线视频观看 | 国产一区二区精品在线 | 久久精品小视频 | 精彩视频一区二区三区 | 一级免费a | 日韩国产精品一区二区三区 | 天天看天天干 | 国产一区不卡 | 国产免费观看一区 | 五月天天丁香婷婷在线中 | 一区二区视频在线 | 欧洲视频一区 | 成人精品鲁一区一区二区 | 亚洲精品一区二区网址 | 久久9久 | 精品亚洲一区二区 | 国产va | 成人a在线观看 | 91在线一区|