| Package | Version | 
|---|---|
| Cross platform | |
| Windows | |
| Linux | Coming soon | 
| MacOS | Coming soon | 
Loads unmanaged libraries right from your embedded resources! Works on Windows and Linux only, both on .NET Framework and .NET Core (and of course .NET 5.0)
- Load x86 and x64 assemblies, right from the memory. No P/Invoke, no temporary files.
- Correctly resolves loaded unmanaged libraries, and exposes a AssemblyResolveevent for users to manually handle it.
- Linux x86 (32 and 64 bit) support, through interoperation with glibc.
using MemoryModule;
        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        delegate int addNumberProc(int a, int b);
            var asmBytes = File.ReadAllBytes($"SampleDLL.dll");
            var asm = NativeAssembly.Load(asmBytes);
            Console.WriteLine("Successfully loaded library.");
            var addNumberFunc = asm.GetDelegate<addNumberProc>("addNumbers");
            var rand = new Random();
            int num1 = rand.Next(0, 20);
            int num2 = rand.Next(0, 20);
            Console.WriteLine($"{num1}+{num2}={addNumberFunc(num1, num2)}");
            var greetFunc = asm.GetDelegate<GreetProc>("Greet");
            greetFunc();
            asm.Dispose();See the DemoApp for more details.
- MemoryModule: Cross platform package, with support for x86 and x86_64, Windows and Linux.
- MemoryModule.Compact.Windows: Compact module for small, standalone Windows applications.
- Windows: Beware of 64-bitdllfiles compiled using g++: fancycode/MemoryModule#108. These files must be compiled using-static-libgccand-static-libstdc++to load properly, in both the original C version and this version.
- Windows: Resources are not supported.
- Linux: Support is limited. While basic C/C++ libraries, such as libcurl, can be properly loaded, MemoryModule.NET may not work with other advanced libraries that contain unknown ELF relocations. If that's the case, please open an issue.
- Linux: As MemoryModule.NET relies on certain glibcdata structures, it may fail on systems that use beta/customglibcversion. Please open an issue for support.