Gateway_man Geschrieben 27. März 2012 Teilen Geschrieben 27. März 2012 Hi, ich verzweifle grade an einem Pinvoke und hab schon diverse Dinge ausprobiert. Aktuell sieht das so aus. Funktion aus der dll die Invoked werden soll: extern "C" __declspec(dllexport) HBITMAP GetSubRect(int x, int y, int witdh, int height) { //ein paar Dinge... } Das ist der letzte stand der C# Signatur. Die auch Fehlschlägt... private static extern IntPtr GetSubRect([MarshalAs(UnmanagedType.I4)] int x, [MarshalAs(UnmanagedType.I4)] int y, [MarshalAs(UnmanagedType.I4)] int witdh, [MarshalAs(UnmanagedType.I4)] int height); Der Fehler der beim Aufruf auftritt sieht wie folgt aus: Ein Aufruf an die PInvoke-Funktion "Invoketest!Invoketest.Form1::GetSubRect" hat das Gleichgewicht des Stapels gestört. Wahrscheinlich stimmt die verwaltete PInvoke-Signatur nicht mit der nicht verwalteten Zielsignatur überein. Überprüfen Sie, ob die Aufrufkonvention und die Parameter der PInvoke-Signatur mit der nicht verwalteten Zielsignatur übereinstimmen. Leider mach ich das verhältnismäßig selten und kenne mich daher nicht so gut aus. Sieht einer von euch den Fehler? lg Gateway Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 27. März 2012 Teilen Geschrieben 27. März 2012 Stimmt die Aufrufkonvention überein? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gateway_man Geschrieben 27. März 2012 Autor Teilen Geschrieben 27. März 2012 Hi, super danke dir. Der Aufruf liefert keinen Fehler mehr zurück. Jetzt hab ich nurnoch das Problem das das HBITMAP falsch ist. Aber gut das ist vermutlich ein Fehler in der cpp lib. lg Gateway Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.