SendMessage PostMessage Struktur



  • Oh Junge bitte nerv mich nicht. 🙄



  • Also blos weil dein Nick darauf schliessen lässt das du ein Informatik Student bist, der evtl. gerade sein Diplom macht, muss man sich hier noch lange nicht so auf blasen ...

    2 : 1 für :schland: 😉

    Gruß Tobi.



  • Pseudo Code

    Prozess A:

    DATA* ad = new DATA();
    SendMessage(...,WM_INSERTTOLIST,0,(LPARAM)ad);
    

    Prozess B:

    OnData( WPARAM WPara, LPARAM LPara)
    
        DATA * ad = (DATA *) LPara;
    
    }
    


  • BorisDieKlinge schrieb:

    Pseudo Code

    Prozess A:

    DATA* ad = new DATA();
    SendMessage(...,WM_INSERTTOLIST,0,(LPARAM)ad);
    

    Prozess B:

    OnData( WPARAM WPara, LPARAM LPara)
    
        DATA * ad = (DATA *) LPara;
    
    }
    

    lol



  • verstehst es nich gell... 🕶 🕶 :schland: :schland:



  • Vermutlich muß er noch ein paar Semester drauflegen, der Dipl.Inf.Student... :p



  • Tue dir einen Gefallen und probier deine Codeschnipsel zukünftig aus, bevor du sie im Forum postest. Damit ersparst du dir solche Peinlichkeiten. Du hast offensichtlich noch nicht ganz das Prinzip virtueller Addressräume verstanden. Also bitte nochmal Grundlagen überlernen und zukünftig Klappe nicht so weit aufreißen, Boris. ➡



  • @Dipl.Inf.Student

    Erlaube mir mal eine Frage: Wer außer Dir hat was von zwei Prozessen geschrieben? Der Threadersteller jedenfalls nicht. 🕶

    Westworld schrieb:

    Hallo,

    Ich möchte gerne via SendMessage bzw. PostMessage eine Nachricht an ein anderes Fenster schicken. Die Nachricht soll über meinetwegen WM_MYMESSAGE (benutzdefiniert) heißen. Funktioniert ja auch alles bis hierher. Aber wenn ich eine Zeichenkette oder gar eine Struktur (struct XYZ { char str1[256]; char str2[256]; }; )über diese Funktionen schicke kriege ich im anderen Fenster nur Schrott. ALles versucht bis hin zu HGLOBAL und Co. Vielleicht weiß jemand weiter. Danke.

    Du brauchst offenbar den zweiten Prozess, damit Du Recht behältst, obwohl Du auf dem falschen Dampfer bist.

    Als Student sollte man erstmal richtig lesen können, bevor man sich als Unreg so aufplustert.



  • BorisDieKlinge schrieb:

    Pseudo Code

    Prozess A:

    DATA* ad = new DATA();
    SendMessage(...,WM_INSERTTOLIST,0,(LPARAM)ad);
    

    Prozess B:

    OnData( WPARAM WPara, LPARAM LPara)
    
        DATA * ad = (DATA *) LPara;
    
    }
    


  • Elektronix schrieb:

    @Dipl.Inf.Student

    Erlaube mir mal eine Frage: Wer außer Dir hat was von zwei Prozessen geschrieben? Der Threadersteller jedenfalls nicht. 🕶

    Westworld schrieb:

    Hallo,

    Ich möchte gerne via SendMessage bzw. PostMessage eine Nachricht an ein anderes Fenster schicken. Die Nachricht soll über meinetwegen WM_MYMESSAGE (benutzdefiniert) heißen. Funktioniert ja auch alles bis hierher. Aber wenn ich eine Zeichenkette oder gar eine Struktur (struct XYZ { char str1[256]; char str2[256]; }; )über diese Funktionen schicke kriege ich im anderen Fenster nur Schrott. ALles versucht bis hin zu HGLOBAL und Co. Vielleicht weiß jemand weiter. Danke.

    Du brauchst offenbar den zweiten Prozess, damit Du Recht behältst, obwohl Du auf dem falschen Dampfer bist.

    Als Student sollte man erstmal richtig lesen können, bevor man sich als Unreg so aufplustert.

    Die Frage wegen der zwei Prozesse ist immer noch nicht beantwortet.



  • Lenk nicht ab, Elektrochecknix. Boris hat Müll gelabert und dachte er kann sich hier wie El Chéf aufspielen, obwohl er offensichtlich 0 Ahnung hat. Ich wollte ihn noch vor der Selbstdemontage retten, aber er wollte ja nicht hören. 🕶



  • Ich bin zwar nicht Elektrochecknix, aber den Müll hast Du selbst gelabert, weil Du eine Frage beantwortest, die gar nicht gestellt wurde. Lernt man sowas auf der Uni?

    Registrier Dich und halt Dich an die Nettiquette (dazu gehört auch, die Nicks anderer User nicht zu verballhornen). Dann können wir weiterreden.



  • @Dipl. Inf. Student: Geh philosophy studieren... natürlich kann man über LPARAM /WPARAM Pointer auf Datenbereiche bzw. Objekte übergeben... als Beispiel Kommunikation Thread und GUI...



  • Tue mir einen Gefallen und lern lesen, dann kannst du dir vielleicht auch die nötigen Grundlagen aneigenen, um mitreden zu können. Wir sprachen über IPC. 🙄



  • Was soll dein "Grundlagen" geschwätz ! Was ist wohl Interprozesskommunikation ➡ Thread -> GUI PostMessage... um das gings hier "Daten" an ein Fenster schicken....

    Du solltest nich nur Bücher lesen...sonder auch mal praktisch arbeiten...



  • Prozessübergreifend



  • WestWorld schrieb:

    Hallo,

    Ich möchte gerne via SendMessage bzw. PostMessage eine Nachricht an ein anderes Fenster schicken. Die Nachricht soll über meinetwegen WM_MYMESSAGE (benutzdefiniert) heißen. Funktioniert ja auch alles bis hierher. Aber wenn ich eine Zeichenkette oder gar eine Struktur (struct XYZ { char str1[256]; char str2[256]; }; )über diese Funktionen schicke kriege ich im anderen Fenster nur Schrott. ALles versucht bis hin zu HGLOBAL und Co. Vielleicht weiß jemand weiter. Danke. 😕

    Zeiger auf Strings oder Strukturen sollte man nie mit PostMessage schicken (es sei denn, man weiß genau, was man tut). Im Gegensatz zu SendMessage kehrt PostMessage sofort zum Aufrufer zurück und der Code wird weiter abgearbeitet. Übergibt man PostMessage Zeiger auf lokale Variablen, dann sind diese schon ungültig, wenn der Empfänger die Nachricht bekommt.



  • Langsam plädiere ich doch dafür, unregistrierte arrogante Dipl.Inf.Studenten auszuschließen. 😡 Typen wie ihm verdanken wir solche Diskussionen:
    ➡ http://www.c-plusplus.net/forum/viewtopic-var-t-is-212868.html



  • Jetzt pack aber mal wieder die unreg Keule ein.

    Boris hat in seinem Codebeispiel behauptet, dass man einfach mittels Pointer Daten zwischen 2 Prozessen austauschen kann:

    Boris schrieb:

    wieso? wenn die daten im prozess B aufm heap liegen kann prozess A über dnen zeiger auf diedaten zugriefen..

    Also kann man einfach einen Zahlenwert zwischen 2 prozessen verschicken, und dann auf die date zugreifen.
    Na wenn das die Meinung der Mehrheit ist, dann wundert mich nichts mehr ...



  • Übergibt man PostMessage Zeiger auf lokale Variablen, dann sind diese schon ungültig, wenn der Empfänger die Nachricht bekommt.

    ich spreche auch nicht von lokalen variabeln.... "heap"

    Boris hat recht wenn er mit Prozessen zwei unterschiedliche Thread in ner anwendung meint....


Anmelden zum Antworten