我创建了一个C ++ DLL,我将其导入C#应用程序以重用函数。 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中写它们)