编辑,因为我更好地理解这个问题。很抱歉早先混淆了VB.NET和VBA
我正在探索获取大型VBA代码库(托管在Excel中)并将其作为编译代码(vbnc)迁移到嵌入式Linux的可行性。我们目前在Windows上构建的应用程序利用通过Microsoft COM扩展VBA的能力。我们有可以通过这种方式访问的C#.NET类和非托管C ++类。
据我所知,mono vbnc不支持通过COM访问外部库。还有哪些方法可以访问外部代码?
从罗尔夫的初步答案来看,似乎有两个: 1)使用P / Invoke访问外部Linux库。我会试验一下。 2)将组件重写为托管代码。
考虑到我的C#/ C ++混合,似乎可能是最好的解决方案。但我不清楚上面#2的机制。有可能指出一个例子或详细说明吗?我看到很多关于如何使用P / Invoke的例子。
提前再次感谢!
答案 0 :(得分:2)
无法在Linux上运行COM / OCX组件,因此VB.NET不支持此功能。
如果你想在Linux上运行并且你当前是COM / OCX,你有两个选择:
查找与现有COM / OCX库相同的本机Linux库,然后使用VB.NET中的这些库(您需要使用P / Invokes绑定到本机库)。
将COM / OCX组件重写为托管代码。