我想在VB6程序中使用VB.NET dll。可能吗?

我想在VB6程序中使用VB.NET dll。可能吗?,vb.net,dll,vb6,Vb.net,Dll,Vb6,我在VB6程序中使用VB.NET dll时遇到问题。我已经用GuidAttribute创建了dll,使用RegAsm创建了tlb,并将其添加到VB6程序的引用中。问题是当我尝试使用CreateObject函数创建对象时,出现了以下错误“ActiveX组件无法创建对象” 我不知道我是否在VB.NET上丢失了将其用作dll的任何声明,或者我是否未正确使用CreateObject函数。您必须确保您的组件已正确注册用于com互操作。。在“项目属性”选项卡中,有一个复选框选项用于启用此选项,您创建了一个可

我在VB6程序中使用VB.NET dll时遇到问题。我已经用GuidAttribute创建了dll,使用RegAsm创建了tlb,并将其添加到VB6程序的引用中。问题是当我尝试使用CreateObject函数创建对象时,出现了以下错误“ActiveX组件无法创建对象”


我不知道我是否在VB.NET上丢失了将其用作dll的任何声明,或者我是否未正确使用CreateObject函数。

您必须确保您的组件已正确注册用于com互操作。。在“项目属性”选项卡中,有一个复选框选项用于启用此选项,您创建了一个可以在vb6中引用的类型库,这是正确的,您可以像添加任何其他组件一样简单地添加对它的引用。但是,实际上是注册它,而不是创建tlb文件

注册程序集供COM使用时,Regasm.exe会将条目添加到本地计算机上的注册表中。更具体地说,它创建依赖于版本的注册表项,允许同一程序集的多个版本在计算机上并行运行。第一次注册程序集时,将为该程序集创建一个顶级键,并为特定版本创建一个唯一的子键。每次注册程序集的新版本时,Regasm.exe都会为新版本创建一个子项

使用Regasm.exe注册程序集后,可以将其安装在全局程序集缓存中,以便可以从任何COM客户端激活该程序集。如果程序集仅由单个应用程序激活,则可以将其放置在该应用程序的目录中

如果您对该工具为注册表生成的内容感兴趣,请使用


regasm{Path to your Assembly}.dll/regfile:myTest.reg

用您提供的信息很难说,但听起来好像您没有使程序集可查找。发件人:

在HKCR\CLSID{0000…0000}键下, 默认值设置为ProgID 和两个新命名的 将添加值类和程序集。 运行时读取程序集值 并将其传递给 运行时程序集解析器。这个 程序集解析程序尝试查找 程序集,基于程序集 名称和名称等信息 版本号。大会 要定位程序集,请执行以下操作: 程序集必须位于其中一个 以下地点:

全局程序集缓存(必须是 强命名程序集)

在应用程序目录中。 从应用程序加载的程序集 路径只能从该路径访问 应用程序

沿着用指定的文件路径 /Regasm.exe的代码基选项


有关从Visual Basic 6调用.Net类的完整文章:

使用VS 2005创建COM DLL:演练:

您到的链接已断开:(.我的补充:如果我设置“使COM可见”,然后在VB6中使用dll,是否可能?