vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

C# Ecke
Managed Code + Unmanaged DLL 
Autor: Benutzername
Datum: 27.12.10 04:09

Hallo zusammen,

habe eine "C# +.Net-Framework"-Anwendung. In dieser Lade ich zur Laufzeit eine von mir erstellte (unmanaged) C++-DLL. Jetzt möchte ich "nur" noch eine Funktion ausführen, bekomme aber einen seltsamen
Fehler.

// C++ Funktion in der DLL
int bigger(int a, int b)
{
	return (a > b ? a : b);
}
 
// Dann der C#-Code in meinem Programm
[DllImport("kernel32.dll")]
public static extern IntPtr LoadLibrary(string lpFileName);
[DllImport("kernel32.dll")]
public static extern IntPtr GetProcAddress(IntPtr hModule, string procName);
[DllImport("kernel32.dll")]
public static extern bool FreeLibrary(IntPtr hModule);
 
private delegate int Bigger(int a, int b);
 
public static void Test()
        {
            IntPtr hDLL = LoadLibrary("[PFAD+DLL]");
            IntPtr Func = GetProcAddress(hDLL, "bigger");
            Bigger b = (Bigger)Marshal.GetDelegateForFunctionPointer(Func, _
              typeof(Bigger));
            int result= b(1, 2);
            FreeLibrary(hDLL);
        }
Fehler:
PInvokeStackImbalance
Ein Aufruf an die PInvoke-Funktion "[BLABLA]Functions+Bigger::Invoke" 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.

Zu erwähnen sei evtl. noch: Beides x86 kompiliert.

MfG
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Managed Code + Unmanaged DLL3.546Benutzername27.12.10 04:09
Re: Managed Code + Unmanaged DLL1.930ModeratorFZelle29.12.10 12:14
Re: Managed Code + Unmanaged DLL2.021Benutzername06.01.11 23:22
Re: Managed Code + Unmanaged DLL1.913ModeratorFZelle07.01.11 09:40
Re: Managed Code + Unmanaged DLL2.097ModeratorDaveS07.01.11 12:07
Re: Managed Code + Unmanaged DLL1.877Benutzername08.01.11 15:25
Re: Managed Code + Unmanaged DLL1.882ModeratorDaveS08.01.11 16:19
Re: Managed Code + Unmanaged DLL1.921ModeratorDaveS08.01.11 19:55
Re: Managed Code + Unmanaged DLL1.952Benutzername09.01.11 18:19
Re: Managed Code + Unmanaged DLL1.883ModeratorDaveS09.01.11 19:03
Re: Managed Code + Unmanaged DLL1.878Benutzername09.01.11 20:23
Re: Managed Code + Unmanaged DLL1.843ModeratorDaveS09.01.11 20:41

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel