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
请帮下忙,谢谢。
解决方案 »
- Lucene.net采用哪种分词比较好?
- 新手问题:想在pictureBox1中选择显示本地电脑上的图片。
- 在循环里将数据写入文本文件,但上次写入的数据会被下次循环的数据覆盖掉
- 序列化和反序列化的问题
- VS2008 Winform启动项在哪里设置?
- 窗口布置问题
- 点击更改不能传值和错误
- 梅花雨出不来..
- C#把mssql数据表保存到"C://LIST.TXT";(数据表有3列,保存到txt后,每个列用逗号隔开)
- 请问TCP端口共享邦定,邦定同一端口后.如何将接收到的数据也共享?
- 新手求教,如何实现类似于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 方法里面有些问题,现在解决了,谢谢。