草庐IT

Serialization

全部标签

c++ - 普通可序列化 C++ 类的类型特征

我有一个定义为Aa;的C++类我想序列化。最简单的方法(当它工作时)是write(fd,reinterpret_cast(&a),sizeof(a));并使用以下方法读回:read(fd,reinterpret_cast(&a),sizeof(a));我知道如果std::is_pod::value这会起作用是真正的类型,但最宽松的类型特征集是什么A必须展览才能工作吗?只是为了完整起见,这是为了在应用程序的运行实例之间保持持久性,不需要另一个程序或另一个平台可以读取该文件。 最佳答案 将对象的按位图像写入流并通过从该流中读取来正确恢复

c# - 是否可以在 C++ 中序列化和反序列化对象?

正如我们所知,c++也是一种面向对象的编程语言,其中大部分内容都是对象,例如java。所以想知道C++中的序列化和反序列化功能是否与我们在Java中一样可用?如果是,如何实现?在java中我们使用Serializable接口(interface)来表示这种类型的对象可以被序列化和反序列化。那么在C++中如何呢?出于好奇,在C#中和在Java中一样吗? 最佳答案 检查一下:http://www.functionx.com/cpp/articles/serialization.htm或使用提升:序列化http://www.boost.o

java - 在 java 中序列化 Float 以供 C++ 应用程序读取的最佳方法?

我需要序列化一个javaFloat以供用C++编写的应用程序通过套接字通信读取。有这方面的标准吗?在Float类中使用floatToIntBits方法最简单,但我不确定它的标准如何。 最佳答案 事实上,这是非常标准的。floatToIntBits函数为您提供float的IEEE编码的实际字节数。唯一的问题是字节将是大端字节序,因此在读入C++应用程序时必须颠倒字节顺序。(除非你的C++平台也是大端!) 关于java-在java中序列化Float以供C++应用程序读取的最佳方法?,我们在S

c++ - 使用 boost::archive 和 boost::iostreams 来压缩数据

我想为一个可以选择性地压缩数据的类编写一个序列化函数。我想使用boost::iostreams中提供的压缩工具。有谁知道如何做到这一点?structX{X(){}templatevoidserialize(Archive&ar,constunsignedintversion){ar&compression;if(compression==0){ar&data;}elseif(compression==1){//useboost::iostreamcompression//facilitiestoserializedata}}intcompression;std::vectordata;

c++ - Boost.Serialization 和 Boost.Python 双向 pickle

我有一个使用Boost.Serialization的C++库。我正在使用Boost.Python为这个库创建Python绑定(bind)。很清楚如何为使用Boost.Serialization的Boost.Python制作一个pickle套件(使用Boost.Serialization保存到一个字符串,然后将该字符串返回给Python)。我想要的是相反的:给定一个boost::python::object,我想要一个serialize(...)将调用Python的pickle.dumps()的函数函数并序列化结果字符串。(想象一个std::vector。当我序列化这个vector时,B

c++ - 在 mac 上使用带有 Xcode 的 c++ 打开带有 arduino 的串口

我用C++编写了一个简单的程序,它通过串行端口向Arduino发送一个角度值;Arduino而不是使用该值来控制伺服电机。这是c++代码#include#include#includeusingnamespacestd;intmain(){unsignedintangle;fstreamarduino;cout>angle;arduino这是arduino的:#includeServoservo;constintpinServo=2;unsignedintangle;voidsetup(){Serial.begin(9600);servo.attach(pinServo);servo.

c# - 需要从非托管 C++ 代码调用托管代码

我用C#写了COM类,一个函数是这样的:publicvoidSignAttached(byte[]message,refbyte[]signedMessage,stringuserName="USER")当我尝试从C++代码调用此函数时,我遇到了异常:-“等级12536的SafeArray已传递给期望等级为1的数组的方法。未知错误0x80131538”,并且每次都更改第一等级,C++代码:SAFEARRAY*message=SafeArrayCreateVector(VT_UI1,0,1);SAFEARRAY*signedMessage=SafeArrayCreateVector(VT

c++ - 序列化结构的 STL 映射

我正在尝试序列化一个STL映射,其中键和值是结构。当键是一个结构并且值是一个int时,附加的代码工作正常。但是,我在设置序列化函数来处理结构值时遇到问题。有关如何执行此操作的任何建议?非常感谢-安德鲁。#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusingnamespacestd;structportfolio_data{doublea;};st

c++ - 通过直接转换为 char 数组来序列化 POD 数据是否安全?

假设T是一个不包含指针的POD类型,我想序列化T(除了一些其他数据之外)。我创建了以下函数来执行此操作:templatevoidserialize(constT&source,char*&dest){*(T*)dest=source;dest+=sizeof(T);}templatevoiddeserialize(T&dest,char*&source){dest=*(T*)source;source+=sizeof(T);}这会导致任何问题吗,或者是否有任何编译器无法正常工作?换句话说,代码将:templateboolcheck_sanity(constT&obj){std::uni

c++ - Boost模板派生类的序列化

我有一个模板化基类Base和一个模板化派生类Derived,我想将其序列化。下面的简化代码编译并运行但不序列化基类的数据成员。#include#include#include#include#include#include#include#include#includetemplatestructBase{Base(Uuu,Vvv):u(uu),v(vv){}Uu;Vv;};templatestructDerived:publicBase,publicBase{Derived(Ttt):Base(2.0,4),Base(3.0,std::string("hello")),t(tt){}