用NET创建DLL,代码如下
Public Interface IDemo
Function Test() As String
Function ShowTime() As String
End InterfacePublic Class Demo
Implements IDemo Public Function Test() As String Implements IDemo.Test
Test = "Hello World!"
End Function Public Function ShowTime() As String Implements IDemo.ShowTime
Dim str As String
str = Now.ToString
Return str
End FunctionEnd Class
编译出Demo.dll组件 使用.net的工具 Visual Studio .Net 2003 Command Prompt,输入以下命令
Regasm Demo.dll /tlb:Demo.tlb
把Demo.dll注册为一个com对象(这个com对象不等同于普通的用VB编写的Com对象),并导出类型库Demo.tlb
将程序集添加到全局程序集缓存中
gacutil /I Demo.dll完成后,应用VB调用,代码如下,Private Sub Command1_Click()Dim demo As ClsDemo.demo
Dim iDemo As ClsDemo.iDemodemo = New ClsDemo.demo
iDemo = demoDim str As String
str = iDemo.Test
MsgBox strEnd Sub为什么在
demo = New ClsDemo.demo
这句出现自动化错误的提示?
Public Interface IDemo
Function Test() As String
Function ShowTime() As String
End InterfacePublic Class Demo
Implements IDemo Public Function Test() As String Implements IDemo.Test
Test = "Hello World!"
End Function Public Function ShowTime() As String Implements IDemo.ShowTime
Dim str As String
str = Now.ToString
Return str
End FunctionEnd Class
编译出Demo.dll组件 使用.net的工具 Visual Studio .Net 2003 Command Prompt,输入以下命令
Regasm Demo.dll /tlb:Demo.tlb
把Demo.dll注册为一个com对象(这个com对象不等同于普通的用VB编写的Com对象),并导出类型库Demo.tlb
将程序集添加到全局程序集缓存中
gacutil /I Demo.dll完成后,应用VB调用,代码如下,Private Sub Command1_Click()Dim demo As ClsDemo.demo
Dim iDemo As ClsDemo.iDemodemo = New ClsDemo.demo
iDemo = demoDim str As String
str = iDemo.Test
MsgBox strEnd Sub为什么在
demo = New ClsDemo.demo
这句出现自动化错误的提示?
2楼,怎么添加空白NEW?我试过很多方法都不行,NET下怎么掉都可以。
Public Class Demo
Public Sub New()
End Sub
End Class'2.调用CreateInstance新建对象
Public Class Demo
Public Shared Function CreateInstance() As Demo
Return New Demo
End Function
End Class
是不是应该在.NET的[COM 类]里写?
但可以:
添加新项-->COM 类;在这里写代码然后生成,.NET就自动导出了xxx.tlb并注册这个COM对象;
在VB6里引用这个xxx.tbl;就OK了
-------------------------------------------------------------------'(1)VB.NET-->类库-->类-->确定
'(2)删除class1
'(3)添加新项-->COM 类
'命名comclass1-->myhello.vb
'<ComClass(myhello.ClassId, myhello.InterfaceId, myhello.EventsId)> _
Public Class myhello#Region "COM GUIDs"
' 这些 GUID 提供该类的 COM 标识及其 COM 接口。
' 如果您更改它们,现有的客户端将再也无法
' 访问该类。
Public Const ClassId As String = "B630F166-0717-4104-A9E0-FB30F0232490"
Public Const InterfaceId As String = "2EF3C811-B545-4D54-BDA9-A50E84FB56BC"
Public Const EventsId As String = "85978B3B-BD76-4602-A7A8-E906746BD04D"
#End Region ' 可创建的 COM 类必须具有不带参数的
' Public Sub New(),否则,该类将不会注册到 COM 注册表中,
' 而且不能通过 CreateObject
' 来创建。
Public Sub New()
MyBase.New()
End Sub
Public Function SayHello() As String
SayHello = "Hello Word!"
End Function
End Class'(4)生成demo
'(5)使用.net的工具 Visual Studio .Net 2003 Command Prompt,输入以下命令
' Regasm Demo.dll(注意路径) /tlb:Demo.tlb(注意路径)----------------------------------
VB6:'引用Demo.tlb
Private Sub Form_Load()
Dim objHello As New demo.myhello
Dim msg$
msg = objHello.SayHello()
MsgBox msg, 64, "应用.NET DLL" Set objHello = Nothing
End Sub
但是从网上 查询的,应用CCM ,应用代理访问NET下DLL 怎么不可以??很晕
但是怎么不能给分呢?
不过分不分的没什么所谓啦;倒是建议LZ给1楼一个短信,呵呵