1. マネージド コードとアンマネージド コード
C# はマネージ言語であり、C++ はアンマネージ言語です。
マネージ コードとアンマネージ コードの違い
1. マネージ コードは CLR 上で実行される中間言語であり、アンマネージ コードはマシン コードにコンパイルされ、マシン上で実行されます。
2. マネージ コードはプラットフォームや言語に依存せず、異なる言語プラットフォーム間の互換性をより適切に実現できますが、アンマネージ コードはプラットフォームと言語に依存します。
3. マネージド コードは、CLR によって提供されるサービス (セキュリティ検出、ガベージ コレクションなど) を利用でき、これらの操作を単独で完了する必要はありません。アンマネージ コードは、セキュリティ検出、ガベージ コレクション、その他の操作を単独で提供する必要があります。 。
C# は C++Dll ライブラリを呼び出すときに [DllImport] 機能を使用する必要があります
2.DLLファイル
DLL ファイルは、アセンブリとも呼ばれるダイナミック リンク ライブラリであり、複数のプログラムで同時に使用できるコードとデータを含むライブラリです。
アセンブリは、.NET 共通言語ランタイム (CLR) の制御下で実行される機能の論理単位です。アセンブリは実際には .dll ファイルまたは .exe ファイルとして存在します。
マネージド コードによって生成された DLL ファイルは、参照を追加することで VS で直接使用できます。
C++ で記述されたコードのコンパイルによって生成される DLL など、アンマネージ コードによって生成される DLL ファイルは、VS で直接参照することはできませんが、DllImport メソッドを通じて使用できます。
3. DLLImportの使用
1. DLL ファイルを Unity プロジェクト フォルダー (プラグイン) にインポートします。
2. 参照名前空間
using System.Runtime.InteropServices;
3. 関数の宣言
[DllImport(“SDK”, EntryPoint=“Init”, CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Unicode)]
public static extern void Init(string EntName);
知らせ:
- 特性パラメータ
- DLLライブラリファイル名
- CallingConvention エントリ ポイントの呼び出し規則
- Charset エントリ ポイントで使用される charset
- EntryPoint エントリポイント名
- 方法
- 戻り値
- パラメータリスト