[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