Hi,我用 C#.Net 已经生成一个 DLL 给 VB6 使用,我已经用 C#.Net 生成出来的 .tlb 文件放到 VB6 工程中引用,而 VB6 也可引用成功,并成功在代码中使用到这个 DLL 里面的类与方法。但是,当运行的时候,提示出错: ActiveX component can't create object。
这个错误是在 VB6 程序运行到:Dim MyTestClass As MyDLL.TestClass
Set MyTestClass = New MyDLL.TestClass (运行到这一行时出错: ActiveX component can't create object)我参考了以下的方法,用了 RegAsm 是可以生成出 MyDLL 对应的 MyDLL.tlb ,但是,再次运行同样也是同一个错误,请问是如何解决??因为 MyDLL.dll 还引用了几个第三方的 .Net DLL ,不用把所有 DLL 都要通过 RegAsm 注册吧???http://support.microsoft.com/kb/817248/zh-cn
注册 .NET 程序集
您必须先注册 .NET 程序集,然后 COM 客户端才能使用它。您可以使用 Tlbexp.exe 和程序集注册工具 (RegAsm.exe) 来注册 .NET 程序集。您可以通过使用 Tlbexp.exe 来创建能够被 COM 理解的 .tlb 文件。为此,请在命令提示符下键入下面的命令: TlbExp AssemblyName /out:FileName当 COM 客户端要与托管程序集对话时,这些客户端就会引用此 .tlb 文件。Tlbexp.exe 命令行工具可将程序集内包含的类和接口转换为 COM 类型库。当类的类型信息可用时,COM 客户端可创建 .NET 类的实例,并且这些客户端可以调用该实例的方法。您必须使用 Regasm.exe 工具来注册 .NET 程序集。当您应用 /tlb: 选项时,Regasm.exe 可以生成并注册一个类型库。COM 客户端要求将类型库安装在 Windows 注册表中。如果不应用此选项,则 Regasm.exe 仅注册程序集中的类型,而不注册类型库。注册程序集内的类型和注册类型库是两种不同的活动。若要注册 .NET 程序集,请在命令提示符下键入下面的命令:RegAsm AssemblyName /tlb: FileName.tlb
请帮下忙,谢谢。
这个错误是在 VB6 程序运行到:Dim MyTestClass As MyDLL.TestClass
Set MyTestClass = New MyDLL.TestClass (运行到这一行时出错: ActiveX component can't create object)我参考了以下的方法,用了 RegAsm 是可以生成出 MyDLL 对应的 MyDLL.tlb ,但是,再次运行同样也是同一个错误,请问是如何解决??因为 MyDLL.dll 还引用了几个第三方的 .Net DLL ,不用把所有 DLL 都要通过 RegAsm 注册吧???http://support.microsoft.com/kb/817248/zh-cn
注册 .NET 程序集
您必须先注册 .NET 程序集,然后 COM 客户端才能使用它。您可以使用 Tlbexp.exe 和程序集注册工具 (RegAsm.exe) 来注册 .NET 程序集。您可以通过使用 Tlbexp.exe 来创建能够被 COM 理解的 .tlb 文件。为此,请在命令提示符下键入下面的命令: TlbExp AssemblyName /out:FileName当 COM 客户端要与托管程序集对话时,这些客户端就会引用此 .tlb 文件。Tlbexp.exe 命令行工具可将程序集内包含的类和接口转换为 COM 类型库。当类的类型信息可用时,COM 客户端可创建 .NET 类的实例,并且这些客户端可以调用该实例的方法。您必须使用 Regasm.exe 工具来注册 .NET 程序集。当您应用 /tlb: 选项时,Regasm.exe 可以生成并注册一个类型库。COM 客户端要求将类型库安装在 Windows 注册表中。如果不应用此选项,则 Regasm.exe 仅注册程序集中的类型,而不注册类型库。注册程序集内的类型和注册类型库是两种不同的活动。若要注册 .NET 程序集,请在命令提示符下键入下面的命令:RegAsm AssemblyName /tlb: FileName.tlb
请帮下忙,谢谢。
解决方案 »
- C#用repeater实现下拉列表问题
- 小数不四舍五入,只保留整数
- C#中对datatable的一些操作,80分请教
- 请大家帮我看看这句话是什么意思?
- C# 的委托和事件
- .net创建setup.exe文件中数据库文件找不到,请问怎么办?
- C#多语言开发
- ADO.NET中如何把数据库中表的约束条件(如外键等)传入DataSet中
- XmlValidatingReader 对XSD进行验证,到底是验证什么?
- 关于access数据库更新的问题!(新手)
- 新手求教,如何实现类似于Word中的搜索功能?
- 请问 C# 发布的 DLL 里面,带有 delegate 方法,在 VB 6 调用这个 DLL 时如何使用这个 delegate 功能?
The system cannot find the file specified.Run-time error '-2147024894 (80070002)'同样也是到了 New 的时候出错:Dim MyTestClass As MyDLL.TestClass
Set MyTestClass = New MyDLL.TestClass (运行到这一行时出错: )请帮忙指点一下。
谢谢,已经解决,一个是要用 regasm 注册,另一个是 new 方法里面有些问题,现在解决了,谢谢。