当前位置: 首页 > news >正文

国外做问卷调查的网站嵌入式linux开发

国外做问卷调查的网站,嵌入式linux开发,中华建设网官网,石家庄net网站开发文章目录 MFC - CArchive/内存之间的序列化应用细节概述笔记END MFC - CArchive/内存之间的序列化应用细节 概述 有个参数文件, 开始直接序列化到文件. 现在优化程序, 不想这个参数文件被用户看到. 想先由参数发布程序(自己用)设置好参数后, 加个密落地. 等用户拿到后, 由程序… 文章目录 MFC - CArchive/内存之间的序列化应用细节概述笔记END MFC - CArchive/内存之间的序列化应用细节 概述 有个参数文件, 开始直接序列化到文件. 现在优化程序, 不想这个参数文件被用户看到. 想先由参数发布程序(自己用)设置好参数后, 加个密落地. 等用户拿到后, 由程序导入到程序运行时指定的数据目录. 程序运行时, 先解密参数文件到内存, 然后再由MFC序列化到类中的变量. 查了一下, 有大神出了文章(https://www.codeproject.com/Articles/1176939/All-About-MFC-Serialization), 将MFC序列化的各种细节都讲了. 不过有些细节要自己实验才能确定. e.g. CArchive向流中序列化写入不同的内容, 这个流空间需要开多长? 针对流的序列化, 自己做了实验, 用到的实现细节都测试了. 可以在自己工程中应用(CArchive/流之间的序列化)了. 笔记 void buf_save_to_ar(uint8_t* pBuf, UINT lenBuf) {bool b_rc false;CMemFile memFile;uint64_t lenFile 0;do {if ((NULL pBuf) || (0 lenBuf)){break;}// memFile.Close(); // todo for test, 没有attch的时候, 也不会报错.// lenFile memFile.GetLength(); // 0 , 没有attach的时候, 或者关闭后, 不报错, 返回的文件长度为0memFile.Attach(pBuf, lenBuf);// lenFile memFile.GetLength(); // 0x100, Attach Buffer后, 文件长度就是Buffer的长度CArchive ar(memFile, CArchive::store);//ar CString(_T(1)); // 如果buffer长度不足, 也不报错, 看来要将buffer长度给够 ff fe ff 01 31 00//ar.Flush(); // for test//ar CString(_T(12)); // 如果buffer长度不足, 也不报错, 看来要将buffer长度给够 ff fe ff 02 31 00 32 00//ar.Flush(); // for test//ar CString(_T(1));//ar.Flush(); // ff fe ff 01 31 00//ar CString(_T(2)); ff fe ff 01 31 00 ff fe ff 01 32 00//ar.Flush(); // for testar CString(_T(hello)); // 如果buffer长度不足, 也不报错, 看来要将buffer长度给够// ff fe ff 05 68 00 65 00 6c 00 6c 00 6f 00 ar.Flush(); // for test// lenFile ar.GetFile()-GetLength(); // 这个长度和序列化无关, 就是attach的buffer长度ar CString(_T(world));ar.Flush(); // for testtry {// 如果buffer给的长度不够, 关闭ar时会报错// catch不住// 所以buffer要留够, 给序列化内容长度估算的1.1倍数, 可能靠谱一些ar.Close(); // ff fe ff 05 68 00 65 00 6c 00 6c 00 6f 00 ff fe ff 05 77 00 6f 00 72 00 6c 00 64 00 ed ed fd fd fd fd // 可以看到留出的保险字符位置并没有被覆盖}catch (CArchiveException* e){e-IsSerializable();b_rc false;break;}b_rc true;} while (false);_ASSERT(b_rc);memFile.Close(); }void ar_load_from_ar(uint8_t* pBuf, UINT lenBuf) {bool b_rc false;CMemFile memFile;CString csHello;CString csWorld;do {if ((NULL pBuf) || (0 lenBuf)){break;}memFile.Attach(pBuf, lenBuf);CArchive ar(memFile, CArchive::load);ar csHello;// now csHello is _T(hello)ar csWorld;// now csWorld is _T(world)ar.Close();b_rc true;} while (false);_ASSERT(b_rc);memFile.Close(); }void CTestArBufDlg::OnBnClickedButton1() {uint8_t* pBuf NULL;UINT lenBuf 0; // 根据要写入的内容多少, 估算好长度后, 来开bufferCString csTmp;int iLenTmp 0;int i 0;int iCntCString 0; // 假设要序列化的是下面这2个CString// CString(_T(hello))// CString(_T(world))csTmp _T(hello);iCntCString;iLenTmp csTmp.GetLength(); // 5lenBuf iLenTmp;csTmp _T(world);iCntCString;iLenTmp csTmp.GetLength(); // 5lenBuf iLenTmp;// ff fe ff 01 31 00// 每次ar一次CString, 就需要增加4个字节(0xff, 0xfe, 0xff 可能是CString的类标记(以后遇到机会, 可以再试试别的数据类型), 01 代表CString的TCHAR字符数量)// lenBuf 现在是WCHAR的数量, 要转成uint8_t的数量lenBuf lenBuf * sizeof(TCHAR);lenBuf (iCntCString * 4); // 存一次CString, 就有4个字节的头信息lenBuf sizeof(TCHAR); // 留个保险字节的位置// now lenBuf is 0x16// 开bufferpBuf new uint8_t[lenBuf];_ASSERT(NULL ! pBuf);// 自己的内存调试标记可以为0xED. MFC调试标记为0xCD, 0xFD, 0xDDmemset(pBuf, 0xED, lenBuf);// test use CArchive load-from/save-to buffer// 如果向流中进行序列化写入, 则需要考虑开多大的流空间, 否则报错(catch不住)buf_save_to_ar(pBuf, lenBuf);// 如果是从流中载入序列化, 则不需要考虑buffer的长度, 因为这个buffer是已经确定的, 正确的(由前面的序列化写入保证)ar_load_from_ar(pBuf, lenBuf);// all ok } END
http://www.w-s-a.com/news/120278/

相关文章:

  • 我做的网站手机上不了wordpress插件整站搬家
  • 河南省和建设厅网站首页西安找建网站公司
  • 网页设计基础代码网站进出成都最新通知
  • 如何创建网站乐清网络科技有限公司
  • 沈阳市网站制作艺术字体logo设计生成器
  • 网站设计常用软件都有哪些中国建设银行官方招聘网站
  • 证券投资网站建设视频直播怎么赚钱的
  • 建设酒店网站ppt模板下载郑州小程序设计外包
  • 网站建设自我总结google推广公司
  • 安全网站建设情况wordpress 评论表单
  • 网站建设发言材料个人网站推广软件
  • php建站软件哪个好南京哪家做网站好
  • 排名好的手机网站建设番禺网站建设专家
  • 番禺怎么读百度有专做优化的没
  • 网站开发中应注意哪些问题网络营销的主要特点
  • 网站定制案例北京网站制作招聘网
  • 网站建设与推广实训小结网站建设专业英文
  • 郑州网站建设动态凡科网站建设是免费的吗
  • 湖北手机网站建设wordpress转emlog博客
  • 北京东站设计网名的花样符号
  • 安徽建设厅网站首页网站开发aichengkeji
  • 自贡网站制作荣茂网站建设
  • 什么做的网站吗正规的机械外包加工订单网
  • 网络工程公司的业务邵阳seo快速排名
  • 博主怎么赚钱网站seo找准隐迅推
  • 营销号经典废话北京网站建设公司网站优化资讯
  • 一六八互联网站建设怎么做套版网站
  • wordpress 书站建筑公司简介范文大全
  • 建设官方网站多少鲜花网站建设的主要工作流程
  • 卖主机网站轻量wordpress主题