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.

     Hints:
     - 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.
     e.g.:
     [DllExport]
     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).

Dependencies

This package has no dependencies.

Showing the top 7 GitHub repositories that depend on UnmanagedExports:

Repository Stars
nefarius/ScpToolkit
Windows Driver and XInput Wrapper for Sony DualShock 3/4 Controllers
pythonnet/pythonnet
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.
p3nt4/PowerShdll
Run PowerShell with rundll32. Bypass software restrictions.
HarmJ0y/KeeThief
Methods for attacking KeePass 2.X databases, including extracting of encryption key material from memory.
bitsadmin/nopowershell
PowerShell rebuilt in C# for Red Teaming purposes
rasta-mouse/TikiTorch
Process Hollowing
obiwanjacobi/vst.net
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.2.5.18722-Debug 1,089 6/26/2013
1.2.4.23262 4,922 3/11/2013
1.2.3-Beta 833 12/20/2012
1.2.2.23707 1,910 10/29/2012
1.2.1.28778 792 10/17/2012
Show less