Schwierigkeiten mit DDE Callback

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Schnuffelhase
User
Beiträge: 2
Registriert: Montag 7. September 2009, 12:42

Hallo zusammen,

ich arbeite derzeit an einem Projekt, bei dem ich eine Python-Implementierung einer DDE-Kommunikation zu einem gegebenen DDE-Server realisieren soll. Da es jedoch in Python keine brauchbare DDE-Implementierung gibt (PyWin32 ist Mist), baue ich diese nun auf eine von mir programmierte C++-Implementierung auf, indem ich die C++-Funktionen als Modul in meinem Python-Programm aufrufe. Das klappt wunderbar, bis auf eine Ausnahme!

Ich verwende Advise Loops. Realisiert habe ich diese in C++ ganz regulär, d.h. ich mache einen Aufruf zum Starten der Advise Loops und empfange im DDE Callback die Info, wenn das Item auf dem Server aktualisiert wurde. Ich setze dann ein Updateflag und lasse eine dritte Funktion zum geeigneten Zeitpunkt das aktualisierte Item vom Server via Request abholen.

Mein Problem ist nun, dass sowohl das Starten der Advise Loop als auch das Abholen der Daten vom Server wunderbar klappt, aber der DDE Callback wird erst verlassen, wenn ich die Advise Loop anhalte. Normalerweise sollte es so sein, dass die Abarbeitung anderer Funktionen und auch die Kommunikation mit dem Server parallel gehen sollte (wie es auch bei C++ ist). Wenn ich aber die Advise Loop als Python-Funktion starte, bleibe ich eben im DDE Callback stecken, bis ich die Advise Loop beende.

Hat jemand eine Idee, warum DDE im Callback stecken bleibt? Ist es überhaupt möglich Advise Loops unter Python zu verwenden?
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Ich habe leider keine Hilfe für dein Problem.

Allerdings bin ich auch daran interessiert, mit Python auf DDE zuzugreifen.
Würdest du eventuell deinen Code zur Verfügung stellen?
Antworten