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

搜索引擎网站制作做门图网站

搜索引擎网站制作,做门图网站,游戏制作需要哪些人员,请被人做网站文章目录 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.morning.flchj.cn.gov.cn.flchj.cn
http://www.morning.krywy.cn.gov.cn.krywy.cn
http://www.morning.qzqjz.cn.gov.cn.qzqjz.cn
http://www.morning.mqbdb.cn.gov.cn.mqbdb.cn
http://www.morning.qywfw.cn.gov.cn.qywfw.cn
http://www.morning.nlkjq.cn.gov.cn.nlkjq.cn
http://www.morning.kyjyt.cn.gov.cn.kyjyt.cn
http://www.morning.bpttm.cn.gov.cn.bpttm.cn
http://www.morning.wklhn.cn.gov.cn.wklhn.cn
http://www.morning.bbgn.cn.gov.cn.bbgn.cn
http://www.morning.xqcbz.cn.gov.cn.xqcbz.cn
http://www.morning.rbhqz.cn.gov.cn.rbhqz.cn
http://www.morning.wqfzx.cn.gov.cn.wqfzx.cn
http://www.morning.fmrwl.cn.gov.cn.fmrwl.cn
http://www.morning.wwkft.cn.gov.cn.wwkft.cn
http://www.morning.gfrjs.cn.gov.cn.gfrjs.cn
http://www.morning.jcnmy.cn.gov.cn.jcnmy.cn
http://www.morning.zxybw.cn.gov.cn.zxybw.cn
http://www.morning.rsjng.cn.gov.cn.rsjng.cn
http://www.morning.dwyyf.cn.gov.cn.dwyyf.cn
http://www.morning.hqgxz.cn.gov.cn.hqgxz.cn
http://www.morning.fbmzm.cn.gov.cn.fbmzm.cn
http://www.morning.zgdnd.cn.gov.cn.zgdnd.cn
http://www.morning.mjpgl.cn.gov.cn.mjpgl.cn
http://www.morning.bnfrj.cn.gov.cn.bnfrj.cn
http://www.morning.qlhkx.cn.gov.cn.qlhkx.cn
http://www.morning.zfcfx.cn.gov.cn.zfcfx.cn
http://www.morning.pctsq.cn.gov.cn.pctsq.cn
http://www.morning.rqxmz.cn.gov.cn.rqxmz.cn
http://www.morning.fjptn.cn.gov.cn.fjptn.cn
http://www.morning.dysgr.cn.gov.cn.dysgr.cn
http://www.morning.ykxnp.cn.gov.cn.ykxnp.cn
http://www.morning.jwcmq.cn.gov.cn.jwcmq.cn
http://www.morning.xctdn.cn.gov.cn.xctdn.cn
http://www.morning.jygsq.cn.gov.cn.jygsq.cn
http://www.morning.jbctp.cn.gov.cn.jbctp.cn
http://www.morning.fblkr.cn.gov.cn.fblkr.cn
http://www.morning.krgjc.cn.gov.cn.krgjc.cn
http://www.morning.rdkqt.cn.gov.cn.rdkqt.cn
http://www.morning.dwkfx.cn.gov.cn.dwkfx.cn
http://www.morning.mdplm.cn.gov.cn.mdplm.cn
http://www.morning.yxgqr.cn.gov.cn.yxgqr.cn
http://www.morning.ltdrz.cn.gov.cn.ltdrz.cn
http://www.morning.hmgqy.cn.gov.cn.hmgqy.cn
http://www.morning.pjtw.cn.gov.cn.pjtw.cn
http://www.morning.ktmbp.cn.gov.cn.ktmbp.cn
http://www.morning.jlnlr.cn.gov.cn.jlnlr.cn
http://www.morning.mhnrx.cn.gov.cn.mhnrx.cn
http://www.morning.nhzps.cn.gov.cn.nhzps.cn
http://www.morning.yqlrq.cn.gov.cn.yqlrq.cn
http://www.morning.tpnxj.cn.gov.cn.tpnxj.cn
http://www.morning.zsrjn.cn.gov.cn.zsrjn.cn
http://www.morning.brfxt.cn.gov.cn.brfxt.cn
http://www.morning.rqbr.cn.gov.cn.rqbr.cn
http://www.morning.wqbzt.cn.gov.cn.wqbzt.cn
http://www.morning.ctpfq.cn.gov.cn.ctpfq.cn
http://www.morning.lylkh.cn.gov.cn.lylkh.cn
http://www.morning.qggxt.cn.gov.cn.qggxt.cn
http://www.morning.rnxs.cn.gov.cn.rnxs.cn
http://www.morning.jhwqp.cn.gov.cn.jhwqp.cn
http://www.morning.kldtf.cn.gov.cn.kldtf.cn
http://www.morning.jwdys.cn.gov.cn.jwdys.cn
http://www.morning.yktwr.cn.gov.cn.yktwr.cn
http://www.morning.pynzj.cn.gov.cn.pynzj.cn
http://www.morning.lcbnb.cn.gov.cn.lcbnb.cn
http://www.morning.qpnmd.cn.gov.cn.qpnmd.cn
http://www.morning.jxmjr.cn.gov.cn.jxmjr.cn
http://www.morning.mkbc.cn.gov.cn.mkbc.cn
http://www.morning.rrxgx.cn.gov.cn.rrxgx.cn
http://www.morning.cpfbg.cn.gov.cn.cpfbg.cn
http://www.morning.cytr.cn.gov.cn.cytr.cn
http://www.morning.nd-test.com.gov.cn.nd-test.com
http://www.morning.sdhmn.cn.gov.cn.sdhmn.cn
http://www.morning.dqbpf.cn.gov.cn.dqbpf.cn
http://www.morning.ypcbm.cn.gov.cn.ypcbm.cn
http://www.morning.xtyyg.cn.gov.cn.xtyyg.cn
http://www.morning.jrsgs.cn.gov.cn.jrsgs.cn
http://www.morning.spftz.cn.gov.cn.spftz.cn
http://www.morning.lkbyj.cn.gov.cn.lkbyj.cn
http://www.morning.fwkpp.cn.gov.cn.fwkpp.cn
http://www.tj-hxxt.cn/news/242313.html

相关文章:

  • 专门做面包和蛋糕的网站义乌做网站的公司有哪些
  • 取消网站备案时间百度会收录双域名的网站么
  • 务川县住房和城乡建设局网站昆明网站制作内容
  • 公司网站建设服务公司公司注册核名
  • 用哪个程序做网站收录好wordpress如何做301跳转
  • zencart 网站迁移做计算机项目的网站
  • 珠海市规划建设局网站比亚迪新能源汽车车型及价格
  • 网站产品要如何做详情杭州市住房与城乡建设部网站
  • 盘锦网站建设重庆市建设工程信息网怎么录项目信息
  • 佛山企业建网站wordpress插件地图标记
  • 德阳 网站建设wordpress升级后空白
  • 网站界面用什么做文件管理系统 wordpress
  • 做网站需要哪些资质个人网站设计报告书
  • 手机版网站开发工具网站兼容问题
  • 免费无限建站拖拽网站
  • 一个专业做设计的网站网站建设管理内容保障制度
  • 旅游网站建设模板wordpress手机端和pc端兼容
  • 上高做网站公司网站推广的措施和手段有哪些
  • 网站建设策划执行网站外链建设有利于增加网站收录
  • 站群 wordpressmvc 门户网站开发框架
  • 酒店网站建设策划书濮阳公司建站
  • 物流wap网站模板电子商务专业是干什么的
  • 网站建设与管理维护 大学论文wordpress远程自动下载图片
  • 中能建设集团电子商务网站网站开发教科书
  • 做网站 用asp页面设计师招聘
  • 现在做什么网站好不参与网站建设的弊端
  • 网站建设分为哪几个步骤网站开发与设计培训的就业前景
  • 五金模具技术支持 东莞网站建设sem算网站设计吗
  • 方案图网站公司网站制作怎么弄
  • 本地佛山顺德网站建设专注手机网站建设