Veröffentlicht 29. Dezember 200321 j Hat jemand von euch Erfahrung im DDE Aufruf? Ich soll das irgendwie per C++ (Borlands C++ Builder) durchführen und hab keinen Plan wie ich dies anstellen soll. Bin für jede Hilfe/Anleitung dankbar.
1. Januar 200421 j Anscheinend bin ich nicht der Einzige der nicht weiß was du mit DDE meinst:D Kannst du das vielleicht mal erläutern? Gruß Guybrush
1. Januar 200421 j DDE steht für Dynamic Data Exchange. Es handelt sich dabei um einen IPC-Mechanismus, also einen Mechanismus, mit dem zwei Anwendungen Daten austauschen können. Die MSDN Library ist da eigentlich recht ausführlich: http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/dataexchange/dynamicdataexchange.asp
5. Januar 200421 j Erstmal Danke für den Link! Doch leider ist es von der MSDN zum funktionierenden Program ein langer Weg. Wie soll denn bitte dies: atomApplication = *szApplication == 0 ? NULL : GlobalAddAtom((LPSTR) szApplication); atomTopic = *szTopic == 0 ? NULL : GlobalAddAtom((LPSTR) szTopic); funktionieren? atomApplication und atomTopic kennt mein compiler nicht, muss ich nochwas includieren? Nachdem ich diese WM_DDE_INITIATE gesendet habe soll mir der Server ja laut MSDN eine WM_DDE_ACK zurück schicken aber wie kann ich feststellen ob ich diese überhaupt bekomme?
5. Januar 200421 j atomApplication und atomTopic müssen irgendwo vorher als ATOM deklariert werden. Dieser Typ sollte duch windows.h vorhanden sein. Die WM_DDE_ACK-Nachricht erhältst du ganz normal in deiner Nachrichtenschleife.
5. Januar 200421 j Um ne Nachrichtenschleife abzufragen kann ich doch dies nutzen oder? MSG msg; while( ::PeekMessage( &msg, HandleDesClient, NULL, NULL, PM_NOREMOVE ) ) { if (::GetMessage( &msg, HandleDesClient, 0, 0 ) == -1) { return false; } else { ::TranslateMessage(&msg); ::DispatchMessage(&msg); } } Wie bekomme ich jetzt damit aber raus ob ein WM_DDE_ACK zurück gesendet wurde?
5. Januar 200421 j msg.message gibt doch nur die Nummer der Nachricht aus (in meinem Fall immer 15). Woher weiß ich jetzt das dies für WM_DDE_ACK steht?
6. Januar 200421 j Original geschrieben von MeisterB msg.message gibt doch nur die Nummer der Nachricht aus (in meinem Fall immer 15). Woher weiß ich jetzt das dies für WM_DDE_ACK steht? Wie meinst`n das?
6. Januar 200421 j Original geschrieben von MeisterB msg.message gibt doch nur die Nummer der Nachricht aus (in meinem Fall immer 15). Woher weiß ich jetzt das dies für WM_DDE_ACK steht? aus dde.h: /* DDE window messages */ #define WM_DDE_FIRST 0x03E0 #define WM_DDE_INITIATE (WM_DDE_FIRST) #define WM_DDE_TERMINATE (WM_DDE_FIRST+1) #define WM_DDE_ADVISE (WM_DDE_FIRST+2) #define WM_DDE_UNADVISE (WM_DDE_FIRST+3) #define WM_DDE_ACK (WM_DDE_FIRST+4) #define WM_DDE_DATA (WM_DDE_FIRST+5) #define WM_DDE_REQUEST (WM_DDE_FIRST+6) #define WM_DDE_POKE (WM_DDE_FIRST+7) #define WM_DDE_EXECUTE (WM_DDE_FIRST+8) #define WM_DDE_LAST (WM_DDE_FIRST+8)
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.