0

関数を再利用するために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でそれらを記述する理由を理解したい)

4

0 に答える 0