Cross-platform COM interop library for .NET Core 2.1 or newer (by Const-me)


Basic ComLightInterop repo stats
about 1 year ago

Const-me/ComLightInterop is an open source project licensed under MIT License which is an OSI approved license.

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives

ComLightInterop Alternatives

Similar projects and alternatives to ComLightInterop

  • GitHub repo Ryujinx

    Experimental Nintendo Switch Emulator written in C#

  • GitHub repo yuzu

    Nintendo Switch Emulator

  • GitHub repo Runtime

    .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.

  • GitHub repo Iron

    An Extensible, Concurrent Web Framework for Rust

  • GitHub repo Rouille, Rust web server middleware

    Web framework in Rust

  • GitHub repo xqemu

    Open-source emulator to play original Xbox games on Windows, macOS, and Linux

  • GitHub repo xemu

    Original Xbox Emulator for Windows, macOS, and Linux (Active Development)

  • GitHub repo Vrmac

    Vrmac Graphics, a cross-platform graphics library for .NET. Supports 3D, 2D, and accelerated video playback. Works on Windows 10 and Raspberry Pi4.

NOTE: The number of mentions on this list indicates mentions on common posts. Hence, a higher number means a better ComLightInterop alternative or higher similarity.


Posts where ComLightInterop has been mentioned. We have used some of these posts to build our list of alternatives and similar projects - the last one was on 2021-03-18.
  • Building a shared vision for Async Rust | 2021-03-18
    > Do you have any good resources on writing dlls to consume via .net like you’re talking about?

    For C APIs i.e. functions, structures and strings, the good resource is Microsoft documentation, the support is built-in, see “Consuming Unmanaged DLL Functions” section:

    For COM APIs i.e. sharing objects around see this library + demos: It’s only really needed on Linux because the desktop version of the framework has COM support already built-in, but it can be used for cross-platform things just fine, I tested that quite well i.e. not just with these simple demos.

    > How do you deal with the managed memory when using the gc from .net

    Most of the time, automatically.

    When you calling C++ from C#, the runtime automatically pins arguments like strings or arrays. Pinning means until the C++ function returns, .NET GC won’t touch these things. This doesn’t normally make any copies: C++ will receive raw pointers/native references to the .NET objects.

    Sometimes you do want to retain C# objects from C++ or vice versa i.e. keep them alive after the function/method returns. An idiomatic solution for these use cases is COM interop. IUnknown interface (a base interface for the rest of COM interfaces) allows to retain/release things across languages.

  • Experimental Nintendo Switch Emulator written in C# | 2021-03-13
    C++ interop is not supported in modern .NET out of the box, but wasn't too hard to implement as a library: