Has any work gone in to a framework for extending mono-VB?

edited, as I understand this problem better. sorry for confusing VB.NET and VBA earlier

I am exploring the viability of taking a large VBA codebase (hosted in Excel) and migrating it to embedded Linux as compiled code (vbnc). Our app as currently architected on Windows makes use of the ability to extend VBA via Microsoft COM. We have C#.NET classes and unmanaged C++ classes that are accessible this way.

I understand that the mono vbnc does not support accessing external libraries via COM. What other ways are there to access external code?

From Rolf's initial answer, there seem to be two: 1) use P/Invoke to access external Linux libs. I'll experiment with this. 2) rewrite components as managed code.

It seems maybe the best solution given my C# / C++ mix might be to use both. But I am not clear of the mechanics of #2 above. Is it possible to point to an example or elaborate? I see lots of examples on how to use P/Invoke.

Thanks again, in advance!


It is not possible to run COM/OCX components on Linux, so VB.NET cannot support this.

You have two options if you want to run on Linux and you're currently COM/OCX:

  • Find native Linux libraries that does the same as your existing COM/OCX libraries, and then use those libraries from VB.NET (you would need to use P/Invokes to bind to the native libraries).

  • Rewrite the COM/OCX components as managed code.

Need Your Help

MySql increment or not based on a previous value

mysql sql

In the below sql, I'm trying to increment the rank, based on the perCent column. The thing here is, that the rank should remain the same when a similar score is found.