advancedlsupport - Mono.DllMap 1.0.0-CI00084

An alternative approach to your typical P/Invoke.

PM> Install-Package Mono.DllMap -Version 1.0.0-CI00084 -Source https://www.myget.org/F/advancedlsupport/api/v3/index.json

Copy to clipboard

> nuget.exe install Mono.DllMap -Version 1.0.0-CI00084 -Source https://www.myget.org/F/advancedlsupport/api/v3/index.json

Copy to clipboard

> dotnet add package Mono.DllMap --version 1.0.0-CI00084 --source https://www.myget.org/F/advancedlsupport/api/v3/index.json

Copy to clipboard
<PackageReference Include="Mono.DllMap" Version="1.0.0-CI00084" />
Copy to clipboard
source https://www.myget.org/F/advancedlsupport/api/v3/index.json

nuget Mono.DllMap  ~> 1.0.0-CI00084
Copy to clipboard

> choco install Mono.DllMap --version 1.0.0-CI00084 --source https://www.myget.org/F/advancedlsupport/api/v2

Copy to clipboard
Import-Module PowerShellGet
Register-PSRepository -Name "advancedlsupport" -SourceLocation "https://www.myget.org/F/advancedlsupport/api/v2"
Install-Module -Name "Mono.DllMap" -RequiredVersion "1.0.0-CI00084" -Repository "advancedlsupport" -AllowPreRelease
Copy to clipboard

Browse the sources in this package using Visual Studio or WinDbg by configuring the following legacy symbol server URL: https://www.myget.org/F/advancedlsupport/symbols/


AdvancedDLSupport

Alternative approach to your usual P/Invoke!

Join the chat at https://discord.gg/fDy5Vhb

Use C# interfaces to bind to native code - quick and easy usage of C API in C# code, on any platform. Gone are the days of broken DllImport and annoying workarounds for the different runtimes.

Fully compatible with Mono, .NET Framework, .NET Core, and .NET Standard. Compatible with Mono DLL mapping on all platforms and runtimes. Configurable and adaptible.

Why use ADL?

  1. Modern API - no more static classes, no more extern. Use your native API as if it were first-class objects.
  2. Flexibility - Inject your native API into your classes, change the library scanning logic, mix your managed and native code.
  3. Speed - ADL is blazing fast, and gives your native interop an edge. See performance increases that are at least 2 and up to 8 times faster than other, existing solutions.
  4. Easy to use - Not only is ADL simple to set up and get working, it's a breeze to maintain, and reduces clutter in your codebase.

Read the Docs, or install via NuGet and get started.

Features

  • Supports all the typical P/Invoke patterns and constructs
  • Seamlessly mix native functions and managed code
  • Use more complex types, such as Nullable<T> and string without any extra code
  • Select library architectures at runtime
  • Select library names at runtime
  • Swappable native library search algorithms
  • Import global variables
  • Optional lazy loaded symbols
  • Optional Mono DllMap support

Basic Usage

  1. Declare your interface

     public interface IMyNativeLibrary
     {
     	long MyNativeGlobal { get; set; }
     	int MyNativeMultiply(int a, int b);
     	void MyOtherNativeFunction(MyStruct strct, ref MyStruct? maybeStruct);
     }
    
  2. Activate it

     const string MyLibraryName = "MyLibrary";
    
     var activator = new NativeLibraryBuilder();
     var library = activator.ActivateInterface<IMyNativeLibrary>(MyLibraryName);
    
  3. Use it

     library.MyNativeGlobal = 10;
    
     var result = library.MyNativeMultiply(5, 5);
    
     var myStruct = new MyStruct();
     MyStruct? myOtherStruct = null;
    
     library.MyOtherNativeFunction(myStruct, ref myOtherStruct);
    

See the Quickstart for more information.

Installation

Get it on NuGet!

Support me

Become a Patron Buy Me a Coffee at ko-fi.com

License

If the library's license doesn't fit your project or product, please contact us. Custom licensing options are available, and we are always open to working something out that fits you - be it modified, commercial, or otherwise.

AdvancedDLSupport's public release is licensed under the GNU Lesser General Public License, Version 3 (LGPLv3). See the LICENSE for details. Without the support of the open-source movement, it would never have existed.

Relicense under LGPLv3.

  • .NETStandard 2.0
    • Microsoft.CSharp (>= 4.4.1)
  • .NETStandard 2.0: 2.0.0.0

                        
Assembly Assembly hash Match
/lib/netstandard2.0/mono.dllmap.dll e91396c2824c46068da73af6fe47e5c1FFFFFFFF

Owners

Jarl Gullberg

Authors

Firwood Software

Project URL

https://github.com/Firwood-Software/AdvanceDLSupport

License

GPL-3.0

Tags

p/invoke cross-platform mono netcore netstandard native interop

Info

7 total downloads
3 downloads for version 1.0.0-CI00084
Download (13.83 KB)
Download legacy symbols (30.92 KB)
Found on the current feed only

Package history

Version Size Last updated Downloads Mirrored?
1.0.0-CI00084 13.83 KB Mon, 24 Sep 2018 16:48:28 GMT 3
1.0.0-CI00083 13.71 KB Mon, 17 Sep 2018 16:50:54 GMT 0
1.0.0-CI00082 13.71 KB Sun, 16 Sep 2018 13:54:24 GMT 0
1.0.0-CI00081 13.71 KB Fri, 14 Sep 2018 17:39:53 GMT 0
1.0.0-CI00080 13.71 KB Fri, 14 Sep 2018 17:27:57 GMT 0
1.0.0-CI00079 13.71 KB Fri, 14 Sep 2018 15:25:58 GMT 0
1.0.0-CI00078 13.71 KB Wed, 12 Sep 2018 14:44:19 GMT 0
1.0.0-CI00077 13.71 KB Wed, 05 Sep 2018 15:30:02 GMT 0
1.0.0-CI00076 13.71 KB Sun, 26 Aug 2018 16:42:29 GMT 1
1.0.0-CI00075 13.71 KB Sat, 25 Aug 2018 19:46:35 GMT 0
1.0.0-CI00074 13.71 KB Fri, 17 Aug 2018 19:51:59 GMT 0
1.0.0-CI00073 13.71 KB Fri, 17 Aug 2018 19:25:16 GMT 0
1.0.0-CI00071 13.71 KB Thu, 26 Jul 2018 19:06:08 GMT 0
1.0.0-CI00070 13.71 KB Sun, 22 Jul 2018 12:12:10 GMT 0
1.0.0-CI00069 13.71 KB Sat, 28 Apr 2018 08:31:48 GMT 0
1.0.0-CI00068 13.71 KB Thu, 26 Apr 2018 08:38:55 GMT 1
1.0.0-CI00067 13.71 KB Wed, 25 Apr 2018 12:12:35 GMT 0
1.0.0-CI00066 13.71 KB Mon, 23 Apr 2018 14:18:36 GMT 0
1.0.0-CI00065 13.71 KB Mon, 23 Apr 2018 13:18:18 GMT 0
1.0.0-CI00064 13.71 KB Mon, 23 Apr 2018 12:40:26 GMT 0
1.0.0-CI00063 13.71 KB Fri, 20 Apr 2018 15:51:14 GMT 0
1.0.0-CI00062 13.71 KB Wed, 18 Apr 2018 17:46:13 GMT 0
1.0.0-CI00061 13.71 KB Wed, 18 Apr 2018 10:42:57 GMT 0
1.0.0-CI00060 13.71 KB Tue, 17 Apr 2018 15:08:02 GMT 0
1.0.0-CI00059 13.7 KB Tue, 17 Apr 2018 13:22:26 GMT 0
1.0.0-CI00058 13.7 KB Sat, 14 Apr 2018 20:19:58 GMT 0
1.0.0-CI00057 13.7 KB Fri, 13 Apr 2018 17:50:47 GMT 0
1.0.0-CI00056 13.56 KB Fri, 13 Apr 2018 10:09:22 GMT 0
1.0.0-CI00055 13.56 KB Fri, 23 Mar 2018 15:55:48 GMT 0
1.0.0-CI00054 13.56 KB Tue, 20 Mar 2018 20:05:01 GMT 0
1.0.0-CI00053 13.56 KB Tue, 20 Mar 2018 17:33:42 GMT 0
1.0.0-CI00052 13.56 KB Tue, 20 Mar 2018 13:42:12 GMT 0
1.0.0-CI00051 13.56 KB Tue, 20 Mar 2018 12:59:59 GMT 0
1.0.0-CI00050 13.56 KB Mon, 19 Mar 2018 16:25:32 GMT 0
1.0.0-CI00049 13.56 KB Mon, 19 Mar 2018 11:25:57 GMT 2
1.0.0-CI00048 13.56 KB Sun, 18 Mar 2018 15:24:28 GMT 0
1.0.0-CI00047 13.56 KB Sun, 18 Mar 2018 14:39:39 GMT 0
1.0.0-CI00046 13.47 KB Thu, 22 Feb 2018 11:47:22 GMT 0
1.0.0-CI00045 13.46 KB Wed, 21 Feb 2018 17:21:49 GMT 0
1.0.0-CI00044 13.46 KB Wed, 21 Feb 2018 13:00:21 GMT 0
1.0.0-CI00043 13.27 KB Tue, 20 Feb 2018 10:17:10 GMT 0
1.0.0-CI00042 13.27 KB Mon, 19 Feb 2018 14:50:25 GMT 0
1.0.0-CI00041 13.27 KB Mon, 19 Feb 2018 14:40:51 GMT 0
1.0.0-CI00040 13.27 KB Mon, 19 Feb 2018 14:23:27 GMT 0
1.0.0-CI00039 13.27 KB Mon, 19 Feb 2018 14:17:30 GMT 0
1.0.0-CI00038 13.27 KB Mon, 19 Feb 2018 14:09:03 GMT 0
1.0.0-CI00037 13.27 KB Mon, 19 Feb 2018 13:24:34 GMT 0
1.0.0-CI00036 13.27 KB Sat, 17 Feb 2018 17:37:00 GMT 0
1.0.0-CI00035 13.27 KB Wed, 14 Feb 2018 20:05:51 GMT 0
1.0.0-CI00034 13.27 KB Mon, 12 Feb 2018 12:55:14 GMT 0
1.0.0-CI00033 13.27 KB Mon, 12 Feb 2018 12:46:41 GMT 0
1.0.0-CI00032 13.27 KB Sat, 10 Feb 2018 21:00:19 GMT 0
1.0.0-CI00031 13.27 KB Sat, 10 Feb 2018 20:50:06 GMT 0
1.0.0-CI00029 13.28 KB Thu, 08 Feb 2018 23:24:26 GMT 0
1.0.0-CI00027 13.27 KB Thu, 08 Feb 2018 23:16:27 GMT 0
1.0.0-CI00026 13.27 KB Thu, 08 Feb 2018 22:40:00 GMT 0
1.0.0-CI00025 13.27 KB Tue, 06 Feb 2018 16:27:28 GMT 0
1.0.0-CI00023 13.27 KB Tue, 06 Feb 2018 14:18:35 GMT 0
1.0.0-CI00022 13.27 KB Tue, 06 Feb 2018 14:08:50 GMT 0
1.0.0-CI00021 13.27 KB Tue, 06 Feb 2018 13:57:54 GMT 0
1.0.0-CI00020 13.27 KB Tue, 06 Feb 2018 12:33:49 GMT 0
1.0.0-CI00019 13.27 KB Tue, 06 Feb 2018 11:26:36 GMT 0
1.0.0-CI00018 13.27 KB Tue, 06 Feb 2018 11:20:42 GMT 0
1.0.0-CI00017 13.27 KB Sun, 04 Feb 2018 18:38:44 GMT 0
1.0.0-CI00016 13.27 KB Sun, 04 Feb 2018 18:26:03 GMT 0
1.0.0-CI00015 13.27 KB Sat, 03 Feb 2018 22:25:20 GMT 0
1.0.0-CI00014 13.27 KB Sat, 03 Feb 2018 16:40:27 GMT 0
1.0.0-CI00013 13.27 KB Sat, 03 Feb 2018 16:30:26 GMT 0
1.0.0-CI00012 13.27 KB Sat, 03 Feb 2018 15:16:47 GMT 0
1.0.0-CI00011 13.27 KB Fri, 19 Jan 2018 20:07:13 GMT 0
1.0.0-CI00010 13.27 KB Fri, 05 Jan 2018 22:40:59 GMT 0
1.0.0-CI00009 13.27 KB Sat, 30 Dec 2017 12:41:32 GMT 0