Unity 用の C++ 関数ライブラリを作成する場合、一般的にマクロが使用されます。
#if defined(BUILD_AS_DLL)
#define API __declspec(dllexport)
#else
#define API extern
#endif
これにより、インターフェースをエクスポートするかどうかをマクロBUILD_AS_DLL
で切り替えること。
開発時には、BUILD_AS_DLL マクロを追加しないでください。プロジェクト プロパティ - 一般 - 構成タイプは、プログラム exe を実行してから
バットを作成し、マクロを追加して dll を生成するように設定されています。
cl /LD /Zi /Od main.c -DBUILD_AS_DLL /WX -o MAIN.dll
/LD は dll を生成することを意味します。
/Zi はデバッグ情報を生成することを意味します。
/Od は最適化を無効にすることを意味します
。
cl /LD /O2 main.c -DBUILD_AS_DLL /WX -o MAIN.dll
生成されたdllをunityプロジェクトのAssets\Plugins\x86_64ディレクトリに置いて使用します。
[DllImport("LuaCallCPP")]
public static extern int add(int a, int b);
生成されたデバッグ版のdllは、vs studioでデバッグ可能です。プロセスにアタッチし、団結を見つけます。