Ändern eines C# - Delegat Aufrufkonvention CDECL

Ich hatte dieses problem mit C#, wenn ich mit DotNet1.1

Das problem ist. Ich habe eine nicht verwaltete dll, die hat eine Funktion, die eine Funktion Zeiger (neben anderen Argumenten). Wenn ich erkläre das DLLImport in C# - code, habe ich einen Delegaten übergeben. Aber die Delegierten in C# haben stdcall Aufrufkonvention in der Erwägung, dass die nicht verwaltete Funktion erwartet einen cdecl Funktion Zeiger. So meine naive Ansatz führte zu Abstürzen. Dann habe ich Folgendes gefunden: http://www.codeproject.com/KB/cs/cdeclcallback.aspx Einige guy schrieb eine ausgezeichnete Bibliothek, die es ermöglicht, ändern Aufruf-Konvention von der Stellvertretung durch die, wie ich verstanden habe, MSIL-hacking. Alles lief gut, bis...

Ich VS2008 migriert und die neue version .NET. Unter diese version der oben genannten Bibliothek nicht funktioniert. Ich bin nicht wirklich ein C# - oder .NET-Experte, und, um die Wahrheit zu sagen, ich kaum verstehen, was seine Bibliothek tut (obwohl es open-source), so dass ich gar nicht wollen, um zu versuchen, um eine Anpassung an neue .NET. Jedoch bin ich der Hoffnung, dass neuere version von C# hat einige bessere Lösung für mein problem.

So, ALSO Experten, bitte helfen Sie mir mit meinen Schmerzen im Gesäß 🙂

Schreibe einen Kommentar