UnmanagedExports 1.2.3-Beta

This is a prerelease version of UnmanagedExports.
There is a newer version of this package available.
See the version list below for details.
dotnet add package UnmanagedExports --version 1.2.3-Beta                
NuGet\Install-Package UnmanagedExports -Version 1.2.3-Beta                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<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                
#r "nuget: UnmanagedExports, 1.2.3-Beta"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install UnmanagedExports as a Cake Addin
#addin nuget:?package=UnmanagedExports&version=1.2.3-Beta&prerelease

// Install UnmanagedExports as a Cake Tool
#tool nuget:?package=UnmanagedExports&version=1.2.3-Beta&prerelease                

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){}

Product Compatible and additional computed target framework versions.
.NET Framework net is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on UnmanagedExports:

Package Downloads
MQL4CSharp

Metatrader MQL library for C#

Wyam.Modules.TextGeneration

Wyam is a simple to use, highly modular, and extremely configurable static content generator. This library provides support for generating text.

TouristarModels

Package Description

TalkProcessor.LexicalAnalyzer

Package Description

Astrapi

Lightning

GitHub repositories (11)

Showing the top 5 popular GitHub repositories that depend on UnmanagedExports:

Repository Stars
nefarius/ScpToolkit
Windows Driver and XInput Wrapper for Sony DualShock 3/4 Controllers
p3nt4/PowerShdll
Run PowerShell with rundll32. Bypass software restrictions.
GhostPack/KeeThief
Methods for attacking KeePass 2.X databases, including extracting of encryption key material from memory.
mandiant/DueDLLigence
iomoath/PowerShx
Run Powershell without software restrictions.
Version Downloads Last updated
1.2.7 844,608 8/16/2015
1.2.6 51,881 11/7/2013
1.2.5.18722-Debug 2,447 6/26/2013
1.2.4.23262 7,348 3/11/2013
1.2.3-Beta 1,994 12/20/2012
1.2.2.23707 3,911 10/29/2012
1.2.1.28778 2,757 10/17/2012

- 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).