This documentation defines the usage environment as a programming language or development platform, for which it is possible to use the Serial Port Monitoring Control library. Theoretically, there are unlimited languages and platforms that can use the library, because it supports both pure
OLE automation interfaces, which makes it highly portable. For clarity, in this documentation we focus on the following two environments:
Native environment means the language that is binary compatible with
COM, more precisely, the one that supports
COM local interfaces. You can create a native client in
Borland Delphi and others. As usual, if you are looking for the highest performance and lowest overhead, while keeping your executable as small as possible, the native environment is the right choice for you.
The native client must load the library as an in-proc component and make sure to use the free threaded marshaller. In fact, the so-called native interfaces in the library require that your runtime does not provide the marshaller for the interface - they are intended to be called directly. INativeListener is the only pure native interface in the library. All other interfaces are dual and can be called through any marshaller (or without one).
Under managed environment we understand all scripting and similar languages. They include
Java and the whole .NET platform. All these languages and tools are capable of working with
OLE automation-compatible interfaces. The SPMC library supports managed clients, providing the highest possible performance while keeping the library usage as simple as possible.
Please note, that you can also create the client in “native” languages, such as
Delphi, that in fact uses the managed version of the library interfaces. While this is possible and actually may simplify your code and boost your development time, the performance will be slightly less, compared to the one in pure native environment.