Boost Message_queue 32Bit und 64Bit
-
Hallo ich habe eine Problem.
Ich nutze Boost um zwischen einem Server und einem Client Daten auszutauschen.Der Server ist eine 32-Bit Anwendung
der Client ist ein eine Mex-Datei in Matlab,64-Bit.Es wird mir folgende Fehlermeldung ausgegeben.
Unexpected Standard exception from MEX file.
What() is:boost::interprocess_exception::library_errorKann es an den verschiedenen Größen der Integer-Typen liegen?32Bit Vs. 64Bit?
Hat jemand einen Tipp?
Dankemessage_queue clientRequestMQ(create_only //only create , CLINET_REQUEST_QUEUE //name , 1 //max message number , (sizeof(int)) //max message size );
clientRequestMQ->send(&request, sizeof(int), 0);
-
larzarus schrieb:
message_queue clientRequestMQ(create_only //only create , CLINET_REQUEST_QUEUE // *** Typo?! *** , 1 //max message number , (sizeof(int)) //max message size );
-
Sorry aber das steht beides mal:
#define CLINET_REQUEST_QUEUE "input_queue"
-
std::cout << sizeof(int) <<std::endl;
Ergibt in beiden Programmen 4:(
Was kann noch das Problem sein?
-
Weiß jemand nen ansatz?
-
Hallo :(,
also in Eclipse funktioniert das ganze.
Ich verwende die normalen Boost Libs, bis auf libboost_date_time-vc100-mt-1_50
diese ist ne 64Bit lib.Kann es hier wieder sein das ich Probleme bekomme, weil ich die Sachen mische?
Server ist 32 bit und der Client in Matlab ist 64Bit?
-
Ich habe gerade die beiden Programme aus der Doku kompiliert (1.49).
Läuft nicht, wenn eine Applikation 32 und die andere 64bittig ist.
(boost::interprocess::lock_exception
, bzwboost::interprocess_exception::library_error
).Dann mal gegoogelt und z.B. diesen Kommentar hier gefunden:https://svn.boost.org/trac/boost/ticket/5230#comment:15
Dementsprechend ist es bis zur 1.48 definitiv nicht möglich, und bei den aktuellen Releases hat sich wohl auch nix getan, jedenfalls steht nix in den Release notes.