새로운 기능으로 직렬화를 향상시킬 수 있지만 매우 이상하게 보입니다. 그때데이터의 16 진수 10 진수 인코딩을 향상시킬 수 있습니다.
22 serialization::archive 8 0 0 1 1 0 0 0 0 123 0 0 31 0 0 0 65 65
우리가 아니오 123
그래서 31
를 볼 수있는 클래스를 직렬화 내가 두 멤버
int number // always = 123
char buffer[?] // buffer with ? size
와 매우 간단한 클래스 그래서 가끔 buffer[31]
에 크기를 설정해야
여기의 문제는 모두 10 진수 형식입니다.
은 지금은 내가이
22 serialization::archive 8 0 0 1 1 0 0 0 0 123 0 0 0 4 0 0 65 65 65
부스트는 버퍼 크기에 대한 16 진수 전환 한 실제 결과입니다
22 serialization::archive 8 0 0 1 1 0 0 0 0 123 0 0 1024 0 0 0 65 65 ---
할 전망 buffer[1024]
에 버퍼 변경?
통지 다른 값은 십진수입니다.
123에서 1024로 번호를 변경하면 어떻게됩니까?
나는 040을 상상할 것입니까?
22 serialization::archive 8 0 0 1 1 0 0 0 0 1024 0 0 0 4 0 0 65 65
이것은 설계 상 의도적으로 31이 1F로 변환되지 않는 이유는 무엇입니까? 일관성이 없다.
이것은 split_free에 대한 우리의 부하 기능에 문제가 발생, 우리는이
unsigned int size;
ar >> size;
을 수행되었지만이 040 일 때 당신이 생각 하듯이, 그것은
이무엇 제로에 :(truncs 이에 대한 권장 솔루션
내가 부스트 1.45.0을 사용했지만, 난 부스트에이 테스트 1_56.0하고 동일
편집 :?. serializat의 샘플 이온 기능
template<class Archive>
void save(Archive& ar, const MYCLASS& buffer, unsigned int /*version*/) {
ar << boost::serialization::make_array(reinterpret_cast<const unsigned char*>(buffer.begin()), buffer.length());
}
MyClass에이 길이 경우 동일한 UNICODE_STRING
http://msdn.microsoft.com/en-gb/library/windows/desktop/aa380518(v=vs.85).aspx
코드를되는 근사 길이를 유지하는 제 소자 부호 INT 와 숯 *에 불과 래퍼 1024 또는 31 그래서 나는 이것이 문제가 될 것이라고 기대하지 않았을 것입니다.
직렬화를 수행하는 코드를 표시해야합니다. – Steve
게시물을 편집하여 코드를 작성하십시오. 4 개의 공백을 들여 쓰게하고 구문 강조 표시를해야합니다. 사람들이 더 쉽게 읽고 더 쉽게 도움을 줄 수 있습니다. – Steve
그것의 지금 이것처럼 스티브. –