Daten zwischen DLL und Mainproc übermitteln
-
Gabs hier bestimmt schon oft aber Suche funzt ja nich

Also das Problem is ganz einfach. Ich habe eine Anwendung, die eine DLL benutzt. Die Dll rechnet jetzt ne halbe ewigkeit an was rum und soblad sie fertig is, soll sie dem MainProc mitteilen und das ergebnis übermitteln. Wie geht das? Hab mal inner Win-API Hilfe nachgeschaut und bin auch eine Funktion SendMessge gestoßen, der man ne nachricht, parameter und das Windowhandel vom MainProc übergeben soll. Wie kann ich im MainProc abfragen, ob eine Nachricht gekommen is bzw. Welche Funktion des MainProcs wird aufgerufen wenn ich eine Message sende? und wie kann man sowas mit MainProcs realisieren, die kein Fenster besitzen?
-
#define WM_MY_OWN_MESSAGE WM_USER+1 LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) { switch(uMsg) { ... case WM_MY_OWN_MESSAGE: // Das hier wird aufgerufen wenn du eine SendMessage(WM_MY_OWN_MESSAGE,..) aufrufst break; } }und wie kann man sowas mit MainProcs realisieren, die kein Fenster besitzen?
Mit nem Event z.B. (siehe CreateEvent, SetEvent, WaitForSingleObject)
-
Und wie kann ich dann daten von der Dll zum Prog übermitteln? Dachte da an NamedPipes. Kann mir mal jemand ein Beispiel posten, wie man eine named pipe einrichtet und daten rüberschickt? Ich kriegs einfach nich gebacken.
-
Hat deine Funktion keinen Rückgabewert (return?...).
Du kannst die Klammotten auch by refernce übertragen...
In deiner DLL sind ganz normale Funktionen, du hast die doch nur ausgelagert...
-
Return und Call by reference funzt leider in diesem Fall nicht, da die Funtkionen Dieser DLL auch von anderen Progs aus genutzt werden sollen, das Ergebnis jedoch immer auch an den gleichen Mainprog übermittelt werden soll. Daher ist nicht gesagt, dass die Funktion der DLL im gleichen Adressbereich wie mein Mainprog ausgeführt wird