C関数を呼び出すC#アプリケーション(Windows 7 vs2010上のx86 .net 3.5)があります
.net 4 にアップグレードすると、次のメッセージが表示されました。
これは、マネージド PInvoke 署名がアンマネージド ターゲット シグネチャと一致しないことが原因である可能性があります。PInvoke シグネチャの呼び出し規約とパラメーターがターゲットのアンマネージド シグネチャと一致することを確認します。
C 署名:
BOOL ABC( UDF_HANDLE ハンドル, char* pQualifiedName ) //#define UDF_HANDLE void*
C#側:
[SecuritySafeCritical]
[DllImport(dllPath, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall, ThrowOnUnmappableChar = true)]
internal static extern int ABC(
[In] IntPtr handle,
[MarshalAs(UnmanagedType.LPStr)] string qualifiedName);
どんな助けでも感謝します。