Boost logo

Boost Users :

Subject: [Boost-users] "invalid signature" in boost::archive::binary_iarchive
From: Ibrahim Beicker (ibrabeicker_at_[hidden])
Date: 2012-05-25 14:44:07


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;
}

I managed to debug into basic_binary_iarchive.ipp and this 'if' @ line 72
fails

if(file_signature != BOOST_ARCHIVE_SIGNATURE())

boost::serialization::throw_exception(archive_exception(archive_exception::invalid_signature));

inside this file I have no debug symbols so I don't know the values of
'file_signature' and 'BOOST_ARCHIVE_SIGNATURE' or where
BOOST_ARCHIVE_SIGNATURE is defined.

Some additional information: the modules are all running on the same
machine, on windows 7 64-bits, and compiled by visual studio 2010 x64
including static boost libraries 1.45.

What causes this and how can I fix it?



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net