AdvancedDLSupport Versions Save

Delegate-based C# P/Invoke alternative - compatible with all platforms and runtimes.

3.1.0

4 years ago

This is a feature release.

  • Span<T> can now be marshalled as a parameter in addition to a return value
  • Indirect calls are now supported on more platforms, including .NET Core 2.0.

3.0.0

4 years ago

This is a feature release, containing numerous new additions.

  • Span<T> can now be marshalled as a return value from unmanaged code (see #76)
  • Symbol and Library loaders can now be overridden by users (see #84)
  • The lifetime of delegates that are passed to unmanaged code can now be controlled (see #79)
  • in parameters are now supported

2.3.2

4 years ago

This is a minor improvement release.

  • The memory layout of nullables are scanned at runtime, instead of having hardcoded assumptions.
  • Make StrictEmit a private dependency.
  • Move to Humanizer.Core to reduce the dependency footprint
  • Ensure duplicate interface members are explicitly overridden
  • Add some useful overloads to DiscoverCompiledTypes.
  • Save AOT assemblies to a single file

2.3.1

5 years ago

This release fixes a problem where by-ref nullable structs were not always marshalled properly.

v2.3.0

5 years ago

This release is a standard maintenance release, bringing some bug fixes and a new feature for .NET FX and .NET Core.

The highlights are as follow:

  • The main executable can now be loaded as a library, using the special library name __Internal.
  • Attributes applied in interfaces are now considered in mixed-mode classes. Attributes applied in mixed-mode classes on a method cause those attributes to take precedence.
  • Fixed a bug where a method signature could not be defined in more than one interface.
  • Fixed a bug where the backend would emit invalid IL when a non-boolean return parameter was used along with boolean method parameters with the indirect calling backend.

v2.2.0

5 years ago

This release implements some additional probing logic to identify more configured folders for native libraries via the AppContext.

Another highlight is the ability to omit specifying the interface to activate on a mixed-mode class - ADL is now perfectly capable of figuring out which methods to implement from which interfaces on its own. This does break binary compatibility with AOT-compiled assemblies, but does not break source API or binary compatibility with the core API.

Thanks to @pauldotknopf for his work on this release.

2.1.2

5 years ago

This release corrects the way external annotations are bundled in the nuget package.

v2.1.0

5 years ago

This is a feature release, adding support for generic delegate marshalling to ADL. More details are available in the documentation and this blog post: http://www.gullberg.tk/blog/implementing-generic/

v2.0.0

5 years ago

This is a major relase of the library to NuGet, which includes the following highlights.

  • Simplify constructor signature of NativeLibraryBase
  • Implement custom boolean marshalling for calli.
  • Remove magic.
  • Enable optimizations by default.
  • Implement the option for suppressing unmanaged code security
  • Enable suppressed security by default.

Some of these changes are internal and don't affect the public API, but you folks eat reflection for breakfast so it might break someone's workflow anyway.

  • Tighten access modifiers and improve annotations.
  • Implement a better symbol name generation.

v1.3.0

5 years ago

This release introduces AOT support for the library, enabling developers to pregenerate binding assemblies instead of generating them at runtime.