为什么在VB IDE(VB6和VBA)中无法调用RegFree COM和.NET?

3

我有一个示例项目,从已编译的VB6中调用可以正常工作,但从IDE或Excel的VBE中调用却不行。

这里有3个DLL:QA.DLL、QB.DLL和QAW.DLL。QA是用C#.NET编写的,QB和QAW是用VB6编写的。QAW是QA的COM包装器。

在调用代码中,我创建了一个激活上下文并加载了一个清单文件。

所有这些都可以在使用VB6创建的exe中正常工作,但在VB6的调试模式或Excel的VBA中却不能正常工作。

有什么想法吗?为什么IDE调用会有所不同,导致它不能正常工作?


我有一个解决方案,但它涉及将 .Net dll QA.dll 复制到 Office11、Office12、VB98 等子目录中。所有 COM dll 和清单都可以放在其他地方,例如网络驱动器上。这有点违背了我的 Reg-Free 需求的初衷。如果有关于如何使用 C 样式调用或 COM(即从 VBA 或 VB6 调用)从网络加载 .Net 组件的建议,将不胜感激。谢谢。 - DangerMouse
1个回答

1

这是因为应用程序实际上是从VB6.exe所在的目录运行的。您实际上可以将您的dll和清单放在那里并使其工作,但如果您进行大量的RegFree开发,该目录很快就会变得混乱不堪。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接