UnmanagedExports 1.2.3-Beta

Unmanaged Exports (DllExport for .Net)

A set of compile-time libraries (nothing to deploy) and a build task that enable you to export functions from managed code to native applications.
     That means, you can create plugins in a managed language like C# or F# for native applications that only have a C-Api (like Notepad++).
     The nuget package is all you need. Just mark your methods with [DllExport] and build.

     - You have to set your platform target to either x86, ia64 or x64. AnyCPU assemblies cannot export functions.
     - The export name defaults to the method name and the calling convention to stdcall. If that's all what you want, you can just use [DllExport] without parameters.
     - You cannot put your exports in generic types or export gegenric methods, but your parameters or the result can use generics.
     static void Test(YourStruct<int> data){}

This is a prerelease version of UnmanagedExports.
There is a newer version of this package available.
See the version list below for details.
Install-Package UnmanagedExports -Version 1.2.3-Beta
dotnet add package UnmanagedExports --version 1.2.3-Beta
<PackageReference Include="UnmanagedExports" Version="1.2.3-Beta" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add UnmanagedExports --version 1.2.3-Beta
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

- Placing [DllExport] on non-static methods will now yield an error.
     - Placing [DllExport] on methods in generic types (or types nested in generic types) will yield an error.
     - Errors regarding lib.exe will no longer break the build.
     - Added support for generic return types. Even the most esotheric corner cases (obfuscated types) should work.
     - Made the code that checks method names and class names much more resilient and faster.
     - Most messages are localizable now (and I translated them to German).


This package has no dependencies.

Showing the top 7 GitHub repositories that depend on UnmanagedExports:

Repository Stars
Windows Driver and XInput Wrapper for Sony DualShock 3/4 Controllers
Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers.
Run PowerShell with rundll32. Bypass software restrictions.
Methods for attacking KeePass 2.X databases, including extracting of encryption key material from memory.
PowerShell rebuilt in C# for Red Teaming purposes
Process Hollowing
Virtual Studio Technology (VST) for .NET. Plugins and Host support.

Version History

Version Downloads Last updated
1.2.7 177,414 8/16/2015
1.2.6 35,267 11/7/2013 1,089 6/26/2013 4,922 3/11/2013
1.2.3-Beta 833 12/20/2012 1,910 10/29/2012 792 10/17/2012
Show less