boost :: serialization을 사용하여 매우 간단한 직렬화 코드를 테스트하고 있습니다. 테스트는 단순히 std :: string을 파일에 씁니다.Windows의 문자열에 직렬화 런타임 오류가 발생합니다.
그래도 컴파일되지만 < < 연산자가 호출 될 때 예외가 throw되는 것이 문제입니다. 파일은 비어 있습니다. 가 0xc0000005 : TEST.EXE에서 0x1004b370 (msvcr100d.dll) 0x000000000021647a에서
처리되지 않은 예외 0x000000000021647a
에서 액세스 위반 우리는 윈도우 7 64 비트에 visualC++ 2010로 컴파일 부스트 1.53 라이브러리를 사용하고 있습니다. 또한 인텔 12.1 64 비트로 성공하지 못했습니다.
#include <fstream>
#include <boost/serialization/string.hpp>
#include <boost/archive/text_oarchive.hpp>
int main(int argc, char * argv[])
{
std::string s = "HelloWorld!";
std::ofstream file("archive.txt");
boost::archive::text_oarchive oa(file);
oa << s;
file.close();
}
도움이 필요하십니까?
컴파일 매개 변수? – didierc
부스트가 다운로드 된 폴더에서 다음 행으로 컴파일되었습니다. bjam.exe 변형 = 디버그 링크 = 공유 스레딩 = 다중 런타임 링크 = 공유 --stagedir =./--build-type = complete - 직렬화 주소 모델 = 64 – auroras
'ofstream' 대신'stringstream'을 사용할 때 똑같은 충돌을합니까? –