- 浏览: 269546 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (263)
- mysql (5)
- boost (6)
- 工具 (10)
- IT生活 (7)
- 多线程 (3)
- Ruby (15)
- php (2)
- MongoDB (39)
- 移动互联网 (2)
- 测试 (8)
- c++ (28)
- 书 (1)
- 网站 (3)
- 网络编程 (14)
- 开源软件 (1)
- 分布式计算 (1)
- 得得得 (1)
- php,wordpress (1)
- error (5)
- 编译 (2)
- 学习 (1)
- 杀毒软件 (1)
- dd (0)
- linux (21)
- 数据库 (1)
- STL (1)
- c++/c (5)
- 软件设计 (1)
- 操作系统 (4)
- 库 (2)
- win32 (1)
- s (0)
- openssl (1)
- perl (2)
- debug (1)
- windows (4)
- python (12)
- windows 防火墙 (1)
- vs (1)
- vim (2)
- vc (1)
- 浏览器插件的危害 (1)
- curl (0)
- 判断手机号码合法性的库 (0)
- 地址备注 (0)
- 安装 File::Slurp (1)
- cenos (2)
- shell (1)
- linunx (1)
- internet (1)
- software (1)
- widows (1)
- linux io (1)
- nginx (2)
- 算法 (2)
- google (1)
- protobuf (2)
- tengine (1)
- tools (1)
- lua (2)
- liunx (1)
- vcard (1)
- lua-iconv (1)
- 网络 (2)
- teat (0)
- ldconfig linux (0)
- awk (0)
- grep (0)
- windws (2)
- linux 命令 (1)
- tcp dump (1)
- vmware (1)
- question2answer (2)
- mongdb (1)
- 正则 (1)
- OCR (2)
- Windows Server (1)
最新评论
在用boost 二进制序列化类的时候,需要注意动态调用文件打开标志std::ios::binary:
The flag std::ios::binary is required only in Windows, where the default mode (ascii) would translate \n\r to \n (and vice versa), thus corrupting any data that is not textual.
The flag std::ios::binary is required only in Windows, where the default mode (ascii) would translate \n\r to \n (and vice versa), thus corrupting any data that is not textual.
#include <boost/serialization/string.hpp> #include "boost/archive/binary_oarchive.hpp" #include "boost/archive/binary_iarchive.hpp" #include "boost/iostreams/stream.hpp" #include <boost/serialization/version.hpp> typedef struct tagWorkStruct { string groundTruthFile; string jpegFile; int workId; }WorkStruct; template<class Archive> void serialize(Archive &ar, AddNewCardWorkStruct &g, const unsigned int version) { ar & g.groundTruthFile; ar & g.jpegFile; ar & g.workId; } //写入文件 string fileName = "test.dat"; ofstream os(fileName.c_str(), std::ios::binary); if (!os.fail()) { try { WorkStruct tempStruct; boost::archive::binary_oarchive oa(os); oa << tempSturct; } catch(...) { } } //读取文件 ifstream is(dataFileName.c_str(), std::ios::binary); if (!is.fail()) { try { WorkStruct tempStruct; boost::archive::binary_iarchive ia(is); ia >> tempStruct; } catch (...)//boost::archive::archive_exception { } }
发表评论
-
c++ 读取unicode文档
2015-02-09 16:12 969int ReadOneNameFile(char *fil ... -
http://curl.haxx.se/
2013-06-13 17:41 0http://curl.haxx.se/ -
[转]线程本地存储(Thread Local Storage, TLS)分析与使用
2013-05-03 16:53 809线程本地存储(Thread Local Storage, TL ... -
C/C++获得windows版本
2012-12-01 11:05 1475MSDN上有详细介绍,做个标记: #include & ... -
[转]异常处理与MiniDump详解(4) MiniDump
2012-10-24 14:46 970异常处理与MiniDump详解(4) MiniDump wri ... -
禁用系统硬错误消息对话框
2012-08-31 19:14 727http://support.microsoft.com/kb ... -
Application Crash Dump Analysis (Windows 7)
2012-08-28 09:39 0Application Crash Dump Analysis ... -
如何成为一个windows程序debug高手
2012-08-18 14:40 0minidump: http://blog.csdn.ne ... -
Boost库编译后命名方式
2012-05-17 10:29 1366Boost官网的《Geting Started ... -
geoIP
2012-05-14 12:38 0http://www.oschina.net/code/sni ... -
vs2010 断点 无法命中
2012-05-07 16:13 1363这种情况不解决办法有 很多。你这个方法我没用过。最简单的方法就 ... -
$err,hr
2012-05-04 20:43 923在Visual C++ 中,可以在监视窗口添加 $err,hr ... -
WINDOWS下线程同步探讨
2012-04-11 15:04 951概述 线程同步可 ... -
undefined reference to 'pthread_create'问题解决
2012-03-30 11:43 0由于是Linux新手,所以现在才开始接触线程编程,照着GUN/ ... -
linux 下 遍历文件夹下的内容
2012-03-29 19:43 0// only works in cpp #ifdef __c ... -
浅谈ReadDirectoryChangesW函数的作用和问题所在
2012-03-23 10:32 4332转自:http://www.cnblogs.com ... -
用 _findfirst 和 _findnext 查找文件,遍历文件夹
2012-03-30 11:39 2028标签: _findfirst _findnext 杂谈 分类: ... -
我的广告
2012-03-19 10:57 0http://www.webweb.com/signup.as ... -
服务器多服务器设置
2012-03-12 18:01 759当服务器功能比较多时,可以抽象出一个代理,将不同的服务 ... -
记录个函数 strstr
2012-03-10 11:30 1044包含文件:string.h 函数名: strstr 函 ...
相关推荐
Boost.Serialization提供了两种主要的序列化方式:文本序列化和二进制序列化。文本序列化通常更易于阅读和调试,但占用的存储空间较大;而二进制序列化则更为紧凑,节省空间,但可能难以直接查看。 1. **文本序列化...
### Boost序列化详解 在软件开发领域,尤其是C++编程中,序列化是一个非常重要的概念。它涉及到将程序中的对象转换成一种可以持久存储或通过网络传输的形式。这对于需要保存对象状态的应用、分布式系统间的数据交换...
一个支持状态存储的库。常用于乐观时间仿真及状态的回退与保存。
boost类序列化
Boost.Serialization库是C++社区广泛使用的序列化工具,它提供了丰富的功能来处理各种类型的对象,包括智能指针。在C++11及更高版本中,智能指针(如`std::unique_ptr`,`std::shared_ptr`和`std::scoped_ptr`)被...
Boost库由Boost社区组织开发、维护。其目的是为C++程序员提供免费、同行审查的、可移植的程序库。Boost社区的发起人Dawes本人就是C++标准委员会的成员之一。大部分boost库功能的使用只需包括相应头文件即可,少数...
解决socket网络中通信的序列化和反序列化问题,很好的实例
由于项目需要,要使用boost,所以在网上找了一些例子帮助理解,其中遇到很多问题,再次总结记录一下。 #include <boost> #include <boost> #include <boost> #include #include std::stringstream ss; void...
6. **Boost序列化**:允许对象的状态被序列化到文件或流中,以便存储和恢复,这对于持久化数据和网络通信非常有用。 7. **Boost.Asio**:是异步I/O库,支持网络编程,包括TCP/IP、UDP、Unix域套接字,以及定时器和...
Boost::Serialization是C++库中的一个模块,它提供了一种序列化和反序列化对象的能力。这个库使得能够将复杂的C++对象结构保存到文件、数据库或者网络流中,然后在需要时重新加载,这对于数据持久化、版本控制以及跨...
如果服务器和客户端都是用C++语言写的就可以用序列化方法将数据存放到流...以下是用boost序列化库写的一个例子: 可以用boost自带的serialization::access来使用序列化C++ 序列化处理类: //SerilizationObject.cpp cl
5. **Boost.Serialization库**: Boost是C++的一个知名库集合,其中的Serialization库提供了强大的序列化功能,支持多种序列化格式,并且兼容多种C++特性,如多态和模板。 6. **protobuf**: Google开源的Protocol ...
`libboost_serialization-mgw45-mt-1_49.dll`是Boost序列化库,它允许开发者将对象状态保存到文件或内存流中,然后在需要时恢复这些状态,这在数据持久化、跨进程通信和网络传输中非常实用。 `libboost_date_time-...
3. **私有成员**:序列化和反序列化可能需要访问类的私有成员,这可以通过友元函数或者使用`boost::serialization`库等方式实现。 4. **效率**:优化序列化和反序列化过程以减少不必要的计算和内存开销。 5. **错误...
9. **其他Boost组件**:除了上述模块,书中还会涉及Boost序列化、智能指针、正则表达式、数学函数等其他Boost组件的使用。 通过阅读《Boost C++应用开发实战指南》第二版并实践其中的代码示例,开发者不仅可以深入...
4. **序列化/反序列化实现**:实现序列化和反序列化功能,使对象能够以某种格式(如XML、JSON或二进制)在内存和文件之间进行转换。 5. **消息映射的动态构建**:创建动态的消息映射系统,允许在运行时添加、删除或...
如果你想实现你序列化alothgrim,请参考和 其他序列化的区别 方法 跨语言 需要修改代码 容器支持 记忆 特洛伊 通过你的alothgrim 不 是的 低的 原型/节俭 是的 需要写原型 只有矢量和地图(适用于 proto3) 高的
在C++中,还可以使用第三方库来简化序列化工作,如Boost.Serialization或者Google Protocol Buffers。这些库提供了强大的功能,支持各种复杂的类型和数据结构,并且能生成跨平台兼容的序列化数据。 实验6可能涵盖了...
Boost.Serialization 是一个强大的库,它支持多种类型的序列化,包括基本类型、容器、智能指针以及用户自定义类型。使用这个库可以简化序列化工作,并且支持XML、文本和二进制格式。 3. 使用标准模板库(STL): ...