Home >Backend Development >C++ >How Can I Export C# Functions to Unmanaged Code?
Exporting Functions from a C# DLL: Unmanaged Exports vs. DLLExport
In contrast to VS C/C , C# lacks explicit support for exporting functions using the "extern "C" __declspec(dllexport)" syntax. However, there are two primary approaches to achieve a similar functionality in C# DLLs:
Unmanaged Exports
This approach allows you to export functions from a C# DLL as if they were written in unmanaged code (e.g., C/C ). To use this method, install the "UnmanagedExports" NuGet package and decorate your exported methods with the [DllExport] attribute.
Example:
using UnmanagedExports; // Import the UnmanagedExports namespace [DllExport] // Export this method to unmanaged code public static int Add(int a, int b) { return a + b; }
DLLExport
DLLExport is a third-party library that enables the export of C# functions in a similar manner to Unmanaged Exports. This library also requires the use of the [DllExport] attribute on exported methods.
Example:
using DllExport; // Import the DllExport namespace [DllExport] // Export this method to unmanaged code public static float Multiply(float a, float b) { return a * b; }
Both Unmanaged Exports and DLLExport effectively enable the creation of C# DLLs that expose functions for consumption by external unmanaged programs, such as C/C applications or plugins.
The above is the detailed content of How Can I Export C# Functions to Unmanaged Code?. For more information, please follow other related articles on the PHP Chinese website!