PDA

View Full Version : [C++] Message Queue su Windows


SimonJ
03-10-2011, 17:25
Salve a tutti,
avrei la necessità di portare un mio sw realizzato su Windows CE a Windows Xp, rinunciando alle caratteristiche realtime del primo sistema operativo.
Ho notato che in Windows non ci sono le Message Queue, ma solo messaggistica relative ad "eventi grafici" delle finestre. Come posso sopperire a tale limitazione? In pratica avrei la necessità di dover dialogare tra thread, inviando e ricevendo particolari strutture dati, in modalità FIFO. Qualche suggerimento o consiglio?

Ken1986
03-10-2011, 21:26
Certo che ci stanno le MQ, le devi solo installare da installazioni applicazioni

SimonJ
05-10-2011, 10:18
Grazie per la risposta. Avevo intravisto questa possibilità. Non che non mi soddisfi come risposta, ma non capisco come mai non siano incluse nativamente. Mi chiedevo, generalmente, come si realizzi uno scambio di informazioni tra thread diversi in ambiente Windows, con delle strutture dati efficienti. Sia su VxWorks che su WinCE ho sempre utilizzato le MessageQueue.

WarDuck
05-10-2011, 10:31
Magari dico una sciocchezza, ma le pipe potrebbero fare al caso tuo?

SimonJ
05-10-2011, 10:33
Magari mi sbaglio, ma le Pipe le ho sempre utilizzate per questioni più complesse, ad esempio "connessione" ad un file, ad una porta seriale, etc..

marco.r
05-10-2011, 13:26
Magari dico una sciocchezza, ma le pipe potrebbero fare al caso tuo?
Le pipe sono uno stream di byte, non esiste il concetto di messaggio.
Questo vuol dire che ad esempio io posso scrivere due messaggi in rapida successione e dall'altro capo potenzialmente mi trovo una unica lettura che li contiene entrambi. In altri termini devo gestirmi trovarmi da solo il bound tra un messaggio e l'altro.
Uno puo' scrivere una MQ usando una pipe, ma e' ad un livello un po' piu' alto.