AdvancedDLSupport
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<T>
や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 Lesser General Public License、バージョン 3 (LGPLv3) に基づいてライセンスされています。詳細についてはライセンスを参照してください。オープンソース運動の支援がなければ、それは決して存在しなかったでしょう。