目次:
定義-DllImport属性とはどういう意味ですか?
DllImport属性は、C#で使用される宣言タグであり、クラスメソッドを.NETアセンブリではなく外部ダイナミックリンクライブラリ(DLL)で定義されているものとしてマークします。
DllImport属性は、共通言語ランタイム(CLR)の制御外で実行されるアンマネージコードで実装された外部DLLでエクスポートされた関数を呼び出すために実行時に使用されます。 また、呼び出し規約、マネージドコードとアンマネージドコード間で渡されるパラメーターの変換の種類など、関数の呼び出し中に必要な他の情報を指定するためにも使用されます。したがって、Windows DLLおよびCまたはC ++で記述されています。
DllImportは、コードがCLRによって実行されるマネージアプリケーションの機能を、Win32アプリケーションプログラミングインターフェイス(API)および実装されている他のユーザー定義のアンマネージコードの機能にアクセスして再利用することによってのみ拡張できる状況で役立ちますDLLで。 これにより、開発の労力を節約し、既存の堅牢で十分にテストされたコードを管理対象アプリケーションの車輪を再発明することなく活用できます。 通常は、書き換えることはできないが変更する機能を備えたDLLを使用するときに必要になります。
TechopediaはDllImport属性を説明します
DllImport属性は、マネージアプリケーションから呼び出されるエクスポートされた関数の宣言ステートメントです。 クラスのインスタンスを必要とするメンバー関数には使用できません。 設計時に、それが適用されるメソッドの宣言の前の角括弧内に指定されます。 関数宣言の前に文字列「extern」を使用する必要があります。
たとえば、WindowsフォームアプリケーションでDllImport属性を使用できます。これは、一部の計算を実行するために、コンポーネントオブジェクトモデルコンポーネント(コードはアンマネージド)のメソッドを呼び出すマネージアプリケーションです。
元のWindows DLLエクスポートメカニズムを使用して機能をエクスポートする従来のDLLをインポートするように設計されています。 マネージアセンブリのコードを(DLLとして)使用するためのものではなく、マネージアプリケーションのプロジェクトで直接参照できます。
DllImport属性は、マネージコードからアンマネージコードへの呼び出しを実行するCLRのInteropServicesを使用します。 また、使用する関数の実装の場所についてコンパイラーに通知します。 マネージコードでこの属性を持つアンマネージラッパー関数が呼び出されると、CLRは必要なDLLを見つけて読み込みます。 マーシャリング(仕様に従ってパラメーターを変換)し、パラメーターの適切な変換と共に、実行後にアンマネージコードを返します。
DllImport属性を使用している間、タイプミスが容易に検出できない場所で発生する可能性があるため、DLLとエクスポートされた関数の正しい名前を使用するように注意する必要があります。
