應該沒有問題,我用 vb6+vb.net2008/2010都沒有問題,并且用 vb.net編寫的 DLL也可以讓vb6調用,可以到微軟網站上下載相關的文件;調用的時候要注意數據類型在 vb.net中已經和 vb6中有了區(qū)別了,比如在 vb6中 Long;在vb.net中應該是 int32
成都創(chuàng)新互聯(lián)公司主營煙臺網站建設的網絡公司,主營網站建設方案,成都app軟件開發(fā),煙臺h5重慶小程序開發(fā)搭建,煙臺網站營銷推廣歡迎煙臺等地區(qū)企業(yè)咨詢
Dim i As Integer,wd As Integer,hd As Integer
Dim Obj As HtmlDocument=WebBrowser1.Document.GetElementsByTagName("iframe")(2).Document
For i=0 To Obj.Images.Count-1
wd=Obj.Images(i).OffsetRectangle.Width
hd=Obj.Images(i).OffsetRectangle.Height
If wd=800 Or wd=790 Then
Call tupxiazai(Obj.Images(i).GetAttribute("SRC"),Application.StartupPath "\image\" i "pic.jpg")
End If
Next
調用.Net的
程序集
還是
COM組件
,
這是不同的,
如果你用Visual
Studio,那在項目的引用那里直接引用就可以了,.Net程序集和COM組件在不同的Tab頁里。
COM組件要先注冊才能看到
regsvr32
com.dll
你可以在vb.net里將你需要的空間做成控件并生成ocx控件或生成dll控件庫,再到vb6里調用就成了。
在您的代碼中,您已經成功使用了RegAsm命令將DLL注冊為COM組件,并在VB6中成功引用了該組件的類型庫文件(TLB文件)。此外,您還在VB6代碼中聲明了一個YCImageDo類型的對象,并成功創(chuàng)建了該對象。
但是,當您嘗試使用YCImageDo對象的屬性和方法時,卻發(fā)現(xiàn)這些成員不可見。這可能是因為在編寫DLL代碼時您沒有正確地聲明這些成員的可見性。
在VB.NET中,您可以使用"Public"關鍵字來聲明一個類型的成員(屬性、方法、過程等)對外可見,而使用"Private"關鍵字則聲明該成員僅在類型內可見。如果您希望YCImageDo類型的成員在VB6代碼中可見,則應將這些成員聲明為Public類型。
例如,如果您希望YCImageDo類型擁有一個名為"GetImage"的方法,則可以在DLL代碼中按如下方式聲明該方法:
Public Function GetImage() As String
' 在這里編寫方法的代碼
End Function
同樣,如果您希望YCImageDo類型擁有一個名為"ImagePath"的屬性,則可以在DLL代碼中按如下方式聲明該屬性:
Public Property ImagePath As String
1. Shared Function System.Runtime.
InteropServices.DLLimport("user32.dll")
2. MessageBoxA(ByVal hwnd As Integer,
ByVal text As String, ByVal
lpcaption As String, ByVal
wtype As Integer) As Integer
3. End Function
首先integer被作為32位數據替代了long(long是64位)
System是Net語言中的一個族,System.Runtime.InteropServices是system中的一個類。System.Runtime.InteropServices.DLLimpor是其中的一個方法。調用DLL的API
接口,這個的意思就是vb6的lib"user32", share是共享的意思,例如:
1. Public Class classA
2. Shared Function System.Runtime.
InteropServices.DLLimport("user32.dll")
MessageBoxA(ByVal h As Integer,
ByVal m As String, ByVal c As
String, ByVal type As Integer) As Integer
3. End Function
4. End Class
你可以這樣調用 classA.MessageboxA 但是如果沒有這個share 在class后打點就沒有MessageboxA的成員出現(xiàn)了 ,現(xiàn)在你就象以前一樣的使用他吧。
其實上面這個VB.NET函數調用方法并不正確,我們仍舊要使用API聲明,只是換了一各形式
如果你認為這就是VB.NET就錯了,看看這個:
system.WinForms.MessageBox.Show("對話內容寫在這里", "標題寫在這里", messagebox.OK BitOr messagebox.IconAsterisk)
這就是面向對象,你已經完成了所有的任務。不需要任何的API聲明。不需要寫多余的代碼。
1. messagebox.IconAsterisk=驚嘆號圖標
2. messagebox.IconError=錯誤圖標
3. messagebox.IconExclamation=警告圖標
4. messagebox.IconHand=錯誤圖標
5. messagebox.IconInformation=提示圖標
所經點NET就是打點到達,在族后面打點,在類后面打點,在對象后面打點。第二個問題就是類與類之間相互的關系,Net在網上處理人與人的關系,在程序語言中處理類與類的關系。倒底是加不加share,倒底是類后面打點,還是Dim成一個對象(把他當一個變量吧)再說,是等于class,還是New class.是dim xxx as class=new class 還是dim xxx as new class
就是這樣VB.NET函數調用將更簡單,不須要研究一些很難的東西。