PInvokeStackImbalanceを取得しています:'PInvokeStackImbalanceが検出されましたメッセージ:PInvoke関数' ConvertedClass::MapViewOfFile'の呼び出しでスタックのバランスが崩れました。これは、マネージドPInvokeシグニチャがアンマネージドターゲットシグニチャと一致しないことが原因である可能性があります。PInvokeシグニチャの呼び出し規約とパラメータがターゲットのアンマネージドシグニチャと一致することを確認してください。
私はDLLの使用にかなり慣れておらず、今日はいくつかのチュートリアルを実行することができました。
どんな助けでもいただければ幸いです。
using System.Runtime.InteropServices;
//dll
[DllImport("kernel32", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Auto)]
public static extern IntPtr MapViewOfFile(IntPtr hFileMappingObject, FileMapAccessRights dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow, ulong dwNumberOfBytesToMap;)
string szSharedMemory = "FUNKY_BUSINESS";
//other dll call is successful and returns value
IntPtr hMem = OpenFileMapping(FileMapAccessRights.Write, FALSE, szSharedMemory);
///BOOM.. not this one
IntPtr pvHead = MapViewOfFile(hMem, FileMapAccessRights.Write, 0, 0, 0);
編集:それは悪い議論でした。5番目の引数はulongではなくUIntPtrである必要があります。 これが今の私の気持ちです