【发布时间】:2011-05-01 06:14:34
【问题描述】:
我只是想知道在执行此操作时是否应该知道一些事情,或者只要在客户端上安装了 .NET 框架,它是否会直接工作?
我问是因为当我尝试这样做时,VB6 的引用对话框说“无法注册那个 dll”
谢谢
【问题讨论】:
标签: .net vb.net com vb6 interop
我只是想知道在执行此操作时是否应该知道一些事情,或者只要在客户端上安装了 .NET 框架,它是否会直接工作?
我问是因为当我尝试这样做时,VB6 的引用对话框说“无法注册那个 dll”
谢谢
【问题讨论】:
标签: .net vb.net com vb6 interop
在“Assembly Information”部分有一个项目设置“Make assembly COM-Visible”。请务必勾选。
【讨论】:
在其他答案的基础上,.NET DLLS,即使它们公开 COM 对象以供使用,如其他答案中所述,请勿包含嵌入式类型库,因此不幸的是,您在处理时无法使用您习惯的东西使用 COM 库,RegSvr32.exe。
正如 Anivas 指出的,您必须使用 RegAsm.exe 注册 .net 程序集(dll),然后 VB6 应该能够看到它(在您的 VB6 项目中添加对它的引用,使用对象浏览器检查哪些对象已被暴露)。
【讨论】:
您必须将其转换为 COM dll。 Regasm dll 并使用它。使用 comvisible 属性。
【讨论】:
其他一些可能有用的信息:.Net DLL 不是编译代码,它是用“中间语言”(IL) 编写的。您可能会发现使用任何文本编辑器打开 .Net DLL 并查看它很有趣。
【讨论】: