On 5/25/2012 2:44 PM, Ibrahim Beicker wrote:
I had to port a multi-process application to 64 bits and I rely on boost serialization to send messages, that are maps of key-values, into Microsoft queues to the other modules. It works just fine into 32 bits but when I run it in 64 the constructor throws an "invalid signature" exception
void Message::fromBinary( const std::string& data ) { std::stringstream ss; ss << data; boost::archive::binary_iarchive ia(ss); //exception here
ia >> *this; }
Have you tried: void Message::fromBinary( const std::string& data ) { std::istringstream ss(data, std::ios::binary); boost::archive::binary_iarchive ia(ss); //exception here ia >> *this; } The output side should be opened with "binary" as well. I'm surprised this didn't cause problems with 32bit as well. Jeff