日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
VB.NET組件封裝實(shí)現(xiàn)功能體驗(yàn)

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

創(chuàng)新互聯(lián)專注于萬(wàn)源網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供萬(wàn)源營(yíng)銷(xiāo)型網(wǎng)站建設(shè),萬(wàn)源網(wǎng)站制作、萬(wàn)源網(wǎng)頁(yè)設(shè)計(jì)、萬(wàn)源網(wǎng)站官網(wǎng)定制、微信小程序開(kāi)發(fā)服務(wù),打造萬(wàn)源網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供萬(wàn)源網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。

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

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

方法如下:

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

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

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

則會(huì)看到ComC.vb的代碼如下:

 
 
 
  1. < ComClass(ComC.ClassId, 
    ComC.InterfaceId, ComC.EventsId)>   
  2. _ Public Class ComCClass ComC   
  3. COM GUID#Region "COM GUID"   
  4. ' 這些 GUID 提供此類(lèi)的 COM 標(biāo)識(shí)   
  5. ' 及其 COM 接口。若更改它們,則現(xiàn)有的   
  6. ' 客戶端將不再能訪問(wèn)此類(lèi)。   
  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 類(lèi)必須具有一個(gè)不帶參數(shù)的   
  12. Public Sub New()   
  13. ' 否則, 將不會(huì)在   
  14. ' COM 注冊(cè)表中注冊(cè)此類(lèi),且無(wú)法通過(guò)   
  15. ' CreateObject 創(chuàng)建此類(lèi)。   
  16. Public Sub New()Sub New()   
  17. MyBase.New()   
  18. End Sub   
  19. End Class 

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

 
 
 
  1. < ComClass(ComC.ClassId, 
    ComC.InterfaceId, ComC.EventsId)>   
  2. _ Public Class ComCClass ComC   
  3. COM GUID#Region "COM GUID"   
  4. ' 這些 GUID 提供此類(lèi)的 COM 標(biāo)識(shí)   
  5. ' 及其 COM 接口。若更改它們,則現(xiàn)有的   
  6. ' 客戶端將不再能訪問(wèn)此類(lèi)。   
  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 類(lèi)必須具有一個(gè)不帶參數(shù)的   
  12. Public Sub New()   
  13. ' 否則, 將不會(huì)在   
  14. ' COM 注冊(cè)表中注冊(cè)此類(lèi),且無(wú)法通過(guò)   
  15. ' CreateObject 創(chuàng)建此類(lèi)。   
  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中添加如下的代碼來(lái)調(diào)用這個(gè)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)行這個(gè)VB.NET組件封裝的實(shí)現(xiàn)程序就會(huì)看到效果。

我在C#中沒(méi)有看到類(lèi)似的com類(lèi).

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

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


本文標(biāo)題:VB.NET組件封裝實(shí)現(xiàn)功能體驗(yàn)
轉(zhuǎn)載注明:http://www.5511xx.com/article/dhhdchp.html