IJW を使用してネイティブ C から C# ライブラリを呼び出す方法
背景:
C# を統合する必要が生じますライブラリをアンマネージ C コードに変換します。利用可能な方法の中で、C /CLI および IJW (JavaScript および Windows ランタイムとの相互運用性) を使用したインターレース サービスが有望に見えます。
質問:
-
IJW の利点: IJW には、com オブジェクトまたはPInvoke?
-
C /CLR ラッパー: IJW を使用して C# ライブラリを呼び出す C /CLR ラッパーを作成するにはどうすればよいですか?
-
ネイティブ C 統合: アンマネージド C ファイルを C /CLR に接続するにはどうすればよいですか?ライブラリ?
答え:
1. COM オブジェクトおよび PInvoke に対する IJW の利点:
- IJW は、マネージド コードとアンマネージド コード間でのデータの受け渡しと取得のプロセスを簡素化します。
- 手動のマーシャリングとデータ変換。
2. IJW を使用した C /CLR ラッパーの作成:
-
新しい C /CLI クラスの作成: C /CLI クラスをプロジェクトに追加し、それに応じた名前を付けます。
-
CLR サポートを有効にする: の .cpp ファイルを右クリックします。新しいクラスを作成し、プロジェクト プロパティで /clr を有効にします。
-
名前空間参照の追加: 「追加の #using ディレクトリ」プロパティを使用して、C# DLL の場所への参照を追加します。
3.ネイティブ C 統合:
-
C /CLR ヘッダーを含める: アンマネージ C ファイルには、C /CLR ラッパー クラスによって生成されたヘッダー ファイルを含めます。
-
ラッパー クラスのインスタンスを作成します: コンストラクターを使用しますラッパー クラスのオブジェクトをインスタンス化します。
-
マネージ メソッドの呼び出し: ラッパー クラス オブジェクトを通じて C# ライブラリのマネージ メソッドにアクセスします。
サンプルコード:
Native.h:
void NativeWrapMethod();
Native.cpp:
#using "mscorlib.dll"
#using "MyNet.dll"
using namespace MyNetNameSpace;
void NativeWrapMethod()
{
MyNetNameSpace::MyManagedClass::Method(); // static method
}
これこのアプローチを使用すると、マネージド C# クラスとそのメソッドをネイティブ C コードから呼び出すことができます。
以上がIJW を活用してネイティブ C で C# ライブラリをシームレスに統合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。