高级DL支持
v3.1.0 - Span parameters and calli
常用 P/Invoke 的替代方法!
使用 C# 接口绑定到本机代码 - 在任何平台上快速、轻松地使用 C# 代码中的 C API。损坏的DllImport
和针对不同运行时的烦人的解决方法的日子已经一去不复返了。
与 Mono、.NET Framework、.NET Core 和 .NET Standard 完全兼容。与所有平台和运行时上的 Mono DLL 映射兼容。可配置且适应性强。
extern
。使用您的本机 API,就像它是一流对象一样。阅读文档,或通过 NuGet 安装并开始。
Nullable
和string
无需任何额外代码声明你的接口
public interface IMyNativeLibrary
{
long MyNativeGlobal { get ; set ; }
int MyNativeMultiply ( int a , int b ) ;
void MyOtherNativeFunction ( MyStruct strct , ref MyStruct ? maybeStruct ) ;
}
激活它
const string MyLibraryName = "MyLibrary" ;
var activator = new NativeLibraryBuilder ( ) ;
var library = activator . ActivateInterface < IMyNativeLibrary > ( MyLibraryName ) ;
使用它
library . MyNativeGlobal = 10 ;
var result = library . MyNativeMultiply ( 5 , 5 ) ;
var myStruct = new MyStruct ( ) ;
MyStruct ? myOtherStruct = null ;
library . MyOtherNativeFunction ( myStruct , ref myOtherStruct ) ;
请参阅快速入门了解更多信息。
在 NuGet 上获取它!
如果库的许可证不适合您的项目或产品,请联系我们。我们提供自定义许可选项,并且我们始终愿意开发出适合您的产品 - 无论是修改版、商业版还是其他形式。
AdvancedDLSupport 的公开版本已获得 GNU 宽通用公共许可证版本 3 (LGPLv3) 的许可。有关详细信息,请参阅许可证。如果没有开源运动的支持,它永远不会存在。