托管的dll跟過去的dll不同.
創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網站制作、網站設計、企業(yè)官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯(lián)網時代的疏勒網站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
2003時期跟老版本的交互還有問題.
不要指望能用declare ....
去看.net 架構分析,對你會很有幫助.
這個dll不是動態(tài)鏈接庫,而是程序集.可以反射的.看了之后你會更加興奮
建議用vb2005,你會發(fā)現(xiàn)用COM也是很爽的.這樣早期的程序可以用com的方法來調用.net的東西.
.net程序之間互相操作也比較簡單.
畢竟是革命性的東西.用老的思路來解決問題職能讓你越走越難,為什么不嘗試一下微軟建議的路線??
一、帶窗體的dll創(chuàng)建
1、先新建 類庫(testdll),在項目中添加兩個窗體form1(主窗體)、form2,為了與后面的調用區(qū)分分別命名為fm1,fm2;并在fm1窗體中添加一個按鈕用來調用fm2如下圖
2、在fm1窗體代碼中先引用fm2, ? ?按鈕代碼調用fm2.如圖
3、生成dll,(class1.vb中不需要寫任何代碼)
二、調用dll
1、新建 一個windows應用程序并添加一個按鈕用來調用dll中的窗體,選 擇 “項目”-“添加引用”,選擇剛才創(chuàng)建的testdll
2、窗體代碼中先引用testdll,再定義一個testdll中的fm1對象,最后執(zhí)行對象的show方法
3、運行結果如下:
VB.net語言
1、創(chuàng)建組件定義
新建一個Probject,在代碼中寫入:
Public Interface IDemo
Function Test() As String
End Interface
2、實現(xiàn)組件定義
新建一個Probject,添加對上述Probject的引用后,在代碼中寫入
Public Class Demo
Implements IDemo.IDemo
Public Function Test() As String Implements IDemo.IDemo.Test
Test = "Hello World!"
End Function
End Class
3、編譯出Demo.dll組件
4、使用.net的工具 Visual Studio .Net 2003 Command Prompt,輸入以下命令
Regasm Demo.dll /tlb:Demo.tlb
把Demo.dll注冊為一個com對象(這個com對象不等同于普通的用VB編寫的Com對象),并導出類型庫Demo.tlb
5、新建一個VB工程,添加對Demo.tlb和IDemo.tlb的引用
6、定義兩個全局變量
Dim vbDemo As Demo.Demo
Dim vbIDemo as IDemo.IDemo
7、在Form_Load事件中初始化
'初始化實體類
Set vbDemo = New Demo.Demo
'將實體類引用到抽象類
Set vbIDemo = vbDemo
8、然后,我們就可以用 vbIDemo.Test 這樣的方法了
,工程名改為add 把類模塊命名為:myfirstdll (原名為class1)然后就可以寫你的dll內容了,比如封裝一個函數(shù),這里我們封裝一個從1加到n的函數(shù): Public Function AddN(ByVal n As Integer) As Integer Dim i As Integer Dim sum As Integer For i = 0 To n sum = i + sumNextAddN = sumEnd Function 完成保存工作后,選擇“文件”——“生成add.dll” 這樣一個簡單的dll完成了。你可以添加多個函數(shù),復雜度任意!這只是以個簡單的例子 下面是調用部分: 假設你有已經有了一個工程,現(xiàn)在需要引用剛才的dll文件。 選擇“工程”-“引用”,在彈出的對話框中選瀏覽,選擇你剛才生成的add.dll。點確定。如果說出現(xiàn)工程名稱重復之類的提示,那是因為你的這個工程,和dll文件的工程名稱一樣了!你改一下工程名就行了,所以不要在新建工程時偷懶,默認的名稱“工程1”會引起不必要的麻煩??!下面是代碼 在聲明部分(就是代碼的最上面)寫: Dim testdll As myfirstdll form的load事件里寫:
首先,由VB編寫生成的DLL文件不是Windows標準的DLL動態(tài)鏈接庫文件,即在VB代碼中不能用代碼申明調用。VB生成的DLL是Active
DLL,生成后只能在VB工程中引用,調用時還比較麻煩,在軟件生成后搬到其他電腦上去,如果沒注冊COM控件的話還會出錯??傊肈LL文件的話最好用VC或其他語言編寫的。
如果一定要用VB生成的DLL,然后用VB調用,過程有點麻煩,你可以在百度上搜一下關鍵詞“VB調用VB生成的DLL”這些。
至于你說的VB工程中的標簽顯示123這個我倒是沒見過。你可以在“工程屬性”那個選項里修改你要修改的東西。
這是偶一個一個字打出來的,希望選最佳答案哦
新建---類庫---把你的函數(shù)放在新建的類庫中-----生成ClassLibrary1
在net程序中---引用----對應目錄下的ClassLibrary1.dll
對應的代碼定義如: Dim mydll As New ClassLibrary1.Class1
最后就可以用mydll調用你的函數(shù)MyFunction了: mydll .MyFunction(1, 2)
注意:vb.net編寫的DLL不能用API函數(shù)的方式通過Declare宣告,只能引用的方式使用
vb.net要編寫的DLL能被vb6.0引用,需要先在編譯屬性中選擇“為COM互操作注冊”打勾
然后在Visual Studio 2008 命令提示中運用RegAsm命令加/tlb命令生成tlb文件
例如:c:\ReleaseRegAsm ClassLibrary1.dll /tlb回車就會在當前目錄生成ClassLibrary1.tlb文件
vb6.0中引用ClassLibrary1.tlb即可。