(\"Data.dll\") Private Shared Function ConnectPlayServer(ByVal Address As String, ByVal Port As Integer, ByVal DataPort As Integer, ByVal Username As String) As Boolean
定興網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),定興網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為定興近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的定興做網(wǎng)站的公司定做!
End Function
Private Declare Auto Function a Lib \"Lib.dll\" (ByVal i As Integer) As String
DLL(動(dòng)態(tài)鏈接庫(kù))是一個(gè)很有用的東西,在開發(fā)大項(xiàng)目的時(shí)候顯得非常重要,因?yàn)槎嗳撕献鏖_發(fā)時(shí),可以給每個(gè)人分配一個(gè)任務(wù),用DLL完成,最后組合起來,就不會(huì)出現(xiàn)互相沖突的問題。這里給出最簡(jiǎn)單的DLL編寫與調(diào)用的示例
首先,我們打開VB.NET,選擇類庫(kù),名稱改為test
然后輸入以下代碼
Public?Class?test
Public?Function?test(ByVal?a?As?Long,?ByVal?b?As?Long)?As?Long
Return?a?+?b
End?Function
End?Class
保存后,生成DLL文件。
這就是最簡(jiǎn)單的一個(gè)DLL,下面是調(diào)用該DLL的示例
新建一個(gè)工程,單擊“項(xiàng)目” -- 添加引用
找到剛才生成的DLL,雙擊它
添加引用以后,似乎什么也沒發(fā)生,這時(shí)我們輸入以下代碼:
Imports test.test
這樣,就包含了該DLL的類。
然后我們定義一個(gè)類
Dim test As New test.test
這樣,就可以使用里面的函數(shù)了,下面是程序示例
Imports?test.test
Public?Class?Form1
Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
Dim?test?As?New?test.test
MsgBox(test.test(1,?2))
End?Sub
End?Class
運(yùn)行該程序,可以看到,調(diào)用了DLL內(nèi)的函數(shù)。
這就是最簡(jiǎn)單的DLL示例,可以將一些復(fù)雜的代碼集成到DLL里,以后升級(jí)或重用都比較方便。
在您的代碼中,您已經(jīng)成功使用了RegAsm命令將DLL注冊(cè)為COM組件,并在VB6中成功引用了該組件的類型庫(kù)文件(TLB文件)。此外,您還在VB6代碼中聲明了一個(gè)YCImageDo類型的對(duì)象,并成功創(chuàng)建了該對(duì)象。
但是,當(dāng)您嘗試使用YCImageDo對(duì)象的屬性和方法時(shí),卻發(fā)現(xiàn)這些成員不可見。這可能是因?yàn)樵诰帉慏LL代碼時(shí)您沒有正確地聲明這些成員的可見性。
在VB.NET中,您可以使用"Public"關(guān)鍵字來聲明一個(gè)類型的成員(屬性、方法、過程等)對(duì)外可見,而使用"Private"關(guān)鍵字則聲明該成員僅在類型內(nèi)可見。如果您希望YCImageDo類型的成員在VB6代碼中可見,則應(yīng)將這些成員聲明為Public類型。
例如,如果您希望YCImageDo類型擁有一個(gè)名為"GetImage"的方法,則可以在DLL代碼中按如下方式聲明該方法:
Public Function GetImage() As String
' 在這里編寫方法的代碼
End Function
同樣,如果您希望YCImageDo類型擁有一個(gè)名為"ImagePath"的屬性,則可以在DLL代碼中按如下方式聲明該屬性:
Public Property ImagePath As String