関数を再利用するためにC#アプリケーションにインポートするC++DLLを作成しました。C++の関数コードはstatic bool IsDisplayDeviceAttached(char *Arg1[])
C#プログラムで以下のようにDllImportを使用すると、
[DllImport("DllName", EntryPoint="?IsDisplayDeviceAttached@@YA_NQAPAD@Z", CallingConvention = CallingConvention.Cdecl)]
static extern bool IsDisplayDeviceAttached([MarshalAsAttribute(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPStr)] string[] Display);
EntryPointNotFound例外としてエラーが発生します。上記と一緒に使用ExactSpelling = true
しましたが、すべてエラーになります。
1)誰かがコードの何がまだ間違っているのかをガイドできますか?
2)また、_CdeclおよびExactSpellingパラメーターなどを指定する理由(DllImportでそれらを記述する理由を理解したい)