[Allegro] WG: FremdBank

Thomas Berger ThB at Gymel.com
Do Mär 19 11:53:57 CET 2015


Am 19.03.2015 um 10:39 schrieb Bernhard Eversberg:
> Am 19.03.2015 10:30, schrieb Thomas Berger:
>>>>
>>> Eine solche Vorkehrung ist in der Tat getroffen in a99.cpp.
>>
>>        xecflg=0;
>>        nRetCode=::SendMessage(HWND_BROADCAST,WM_USERCHANGED,a,b);
>>        xecflg=1;
>>
>> das kann doch nicht Ihr Ernst sein?
>>
> Doch, und es hat ja bis jetzt klaglos funktioniert bzw. gab noch nie
> einen Fehlerfall. Ohne diese Maßnahme klappte es nicht, warum sollte
> ich also daran zweifeln.
> Und ich habe nochmals zuverlässige Anwender befragt,
> bei mir selber tritt das Problem nicht auf, aber vor Tagen auf einer
> anderen Maschine schon, da hatte ich aber keine Zeit.
> 
>> In Zeile 7661 von a99.cpp gibt es einen Kommentar, dass PostMessage
>> genutzt wird, denn "SendMessage geht auf /64 nicht": Ist das evtl.
>> hier von Belang?
>>
> Weiß ich nicht. Ich sende Ihnen auch mal das modifizierte Programm
> und wäre für Prüfung dankbar.

Ich habe mir einmal die Dokumentation angesehen, SendMessage ist
blockierend (insbesondere in Bezug auf das "eigene" Fenster):
"If the specified window was created by the calling thread, the window procedure
is called immediately as a subroutine"

D.h. die obige Konstruktion ist "sauber", denn SendMessage() kehrt
insbesondere erst dann zurueck, wenn die eventuelle Verarbeitung der
Nachricht durch die eigene Thread abgeschlossen ist.

PostMessage hingegen ist erstens Queue-basiert und damit zweitens
asynchron: Das geht dann wirklich nur sauber, wenn der Message Handler
die eingehende Nachricht daraufhin untersucht, ob sie von der eigenen
Thread stammt (vgl. InSendMessage): Die Testaenderung sollte also
nicht bleiben.

Ansonsten hat sich die Angelegenheit eruebrigt, peinlicherweise habe
ich nicht
x flex hallo
eingetippt sondern voellig umnachtet
x exec hallo.flx
oder so.

Tut mir sehr leid
viele Gruesse
Thomas Berger



Mehr Informationen über die Mailingliste Allegro