Struct per sendmessage von dll zu main prog



  • Also, ich habe eine dll,
    von dieser kann ich problemlos textnachrichten an mein program schicken

    tring temp="Hook Uninstalled";
    SendMessage(hWindow,(WM_USER+3),(WPARAM)temp.c_str(),(LPARAM)temp.size());
    

    soweit ich weiß werden der string und int als pointer gecastet um versendet zu werden.

    Wenn ich jetzt aber einen ptr von einem struct per lparam verschicke bekomme ich im hauptprogramm eine zugriffsverletzung.

    Ich sehe jetzt keinen unterschied ob der string als ptr gecastet wird oder der struct!?

    File mapping will ich mir jetzt gleich noch anschauen, aber kann mir das bitte jemand mal erklären?

    Daaaaanke



  • zeusosc schrieb:

    Wenn ich jetzt aber einen ptr von einem struct per lparam verschicke

    Wus?



  • Mit SendMessage sollte man mit WPARAM und LPARAM risikolos mur echte Integers verschicken. Zeiger sind - wenn wie Du meinst möglich - grundsäzlich riskant. Windows könnte zwischen dem Senden und dem Empfangen einer Nachricht den Arbeitsspeicher umgeschaufelt haben. Hole die Struct mit einer DLL-Funktion über die Parameterliste, also einen Zeiger auf die Struktur. Das ist sicher! Filemapping brauchst Du hier definitiv nicht.



  • Mit WM_COPYDATA ???


Anmelden zum Antworten