Weekly report for 18 June 2011 on Project "dotNET Interaction Mechanism for Scilab + Environment Abstraction Layer"
This was my last lazy week :), because I had defense of my master thesis in University. I have defended it with a best grade and now I'm done with University.
This week I again was busy with introducing example of another way of managed/unmanaged interop, because COM requires admin rights to register objects and is complicated enough. And sometimes slow.
That's why I introduced another way of reaching managed code from unmanaged - a "flat" (win32) API. In this approach, methods from a library, using managed C++ are exposed for unmanaged code. This has removed one intermediate C++ level, which was using COM-interfaces. I also decided to use Managed C++ instead of C#.
This method has much less machine instructions overhead, so it is faster than COM.
Conversions System::String <-> char* are done with:
String Marshal::PtrToStringAnsi(char*) and IntPtr charMarshal::StringToHGlobalAnsi(String) methods
I think, this is what we need for Windows managed/unmanaged interop. For Mono we will use Mono embedding API.
For more on used itnerop method, see:
Next week
Still the same - as last, abstraction from Java in JIMS.