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_error

    Kann es an den verschiedenen Größen der Integer-Typen liegen?32Bit Vs. 64Bit?

    Hat jemand einen Tipp?
    Danke 👍

    message_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 , bzw boost::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.


Anmelden zum Antworten