如何使用VB6的COM在IronPython的“参考”?(How can I use a VB6 C

2019-09-22 07:26发布

我目前正在开发的是或多或少地需要从VB 6 COM DLL得到一些数据的脚本。 此DLL是目前在微软Word VBA项目中使用,并出口类等,以VBA代码。 它在工具添加 - >引用菜单中的VBA编辑器,我可以看到它在VBA对象浏览器类。

从我的阅读,也可以使用VB.NET VB6的COM库(或至少,它应该是可以的。),因为它应该在VB.NET是可能的,而且由于.NET运行在CLR,并且由于IronPython的不来,从逻辑上讲,我不能访问从IronPython的这个古老的DLL?

我曾尝试import clr; clr.AddReferenceToFileAndPath(dllpath) import clr; clr.AddReferenceToFileAndPath(dllpath)中IronPython的,但不断收到“IO错误:文件不存在”,这显然是错误的。

如果任何人都可以点我在/任何/ .NET语言使用VB6 COM对象,这将不胜感激。

谢谢!

PS:不,我不能编辑/视图的COM DLL的来源,这是第三方的专有的东西。 PPS:无论如何,我可以得到GUID / COM“的名字; 的dll?

Answer 1:

您需要装配生成运行COM包装使用tlbimp工具,并添加到一个参考; 支持语言.NET属性可以明确地做互操作,但即使在那里,autogenerating包装就简单得多了。

在检查包装程序集ildasm将显示究竟是如何转换已经完成。



Answer 2:

在任何.NET语言(在Visual Studio,不知道是否有IronPython的完整的语言支持那里,或者如果它仅在具有.NET框架?CLR的运行),你干脆去Add Reference对话框,选择COM选项卡,选择库(就像在VB6 / VBA引用对话框),你就基本上完成了。 VisualStudio的那么为您生成一个.NET互操作程序集是中间人的COM库,你可以使用它,就好像它是一个.NET程序集。 如果IronPython的在VisualStudio的支持,这可能是你应该做的。

如果没有,那么你需要找出哪些命令行工具VisualStudio中用来生成interop程序集(有点像WSDL.EXE当您添加Web引用它使用),使用该工具来手动生成interop装配和使用,从IronPython的,你会做任何其他.NET程序集。 我没有任何具体的你现在不检查谷歌/ MSDN,我只是做内部的VisualStudio C#的工作,所以我从来没有真正需要这个自己呢。



文章来源: How can I use a VB6 COM 'reference' in IronPython?