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

外贸手表网站模板网站权重最高是多少

外贸手表网站模板,网站权重最高是多少,emulate wordpress,在门户网站做产品单页多少钱一天概述 c/c如果在日志中查看某个结构体/类的每个变量名#xff0c;变量值信息#xff0c;只能通过printf逐个格式化#xff0c;非常繁琐#xff0c;如何做到类似protobuff转json的序列化功能呢#xff1f;该dll库先通过分析pdb文件获取结构体/类的变量名称、变量地址#…概述 c/c如果在日志中查看某个结构体/类的每个变量名变量值信息只能通过printf逐个格式化非常繁琐如何做到类似protobuff转json的序列化功能呢该dll库先通过分析pdb文件获取结构体/类的变量名称、变量地址并序列化成完整json字符串极大降低了开发者工作量。 详细 概述 通过pdb文件查找指定结构体的变量命名和变量地址将指定的结构体变量内容序列话为json格式。 实现原理 com组件查找pdb文件 使用visual studio 编译后的c/c工程在输出目录都会输出xxx.pdb文件该pdb文件中包含了工程中类型的符号文件在软件调试过程中非常重要。pdb文件格式的解析依赖com组件msdia120.dll在成功注册msdia120.dll组件后通过提供的方法对pdb文件进行解析 HRESULT hr ::CoInitialize(NULL);{CComPtrIDiaDataSource pDiaDataSource;CComPtrIDiaSession pDiaSession;CComPtrIDiaSymbol pGlobalSymbol;CComBSTR bstrFilename pdb_path;if (LoadDataFromPdb(bstrFilename, pDiaDataSource, pDiaSession, pGlobalSymbol)) {LoadAllUDTs(pGlobalSymbol);//解析所有数据类型保存在全局变量g_map_udt中LoadAllEnums(pGlobalSymbol);ret 1;}}::CoUninitialize(); 对变量进行序列化 #define TCDUMP(ref_var) \tcDump(typeid(ref_var).name(), (ref_var)) 通过输入变量地址通过关键字typeid获取变量类型按照不同的变量类型进行不同方式的处理比如已内置变量类型为列 if (dump_as_builtin(type, ptr, root)) {return true;} bool dump_inv_as_builtin(const std::string type, void* ptr, const Json::Value root) {static const char* buildin_signed[] {char,wchar_t,signed char,int,short,long,__int8,__int16,__int32,__int64,};static const char* buildin_unsigned[] {unsigned char,unsigned short,unsigned int,unsigned long,unsigned __int8,unsigned __int16,unsigned __int32,unsigned __int64};if (type bool) {*(bool*)ptr root.asBool();return true;}if (type float) {*(float*)ptr root.asFloat();return true;}if (type double) {*(double*)ptr root.asDouble();return true;}for (auto t : buildin_signed) {if (type t) {switch (type_size(type)){case 1:*(int8_t*)ptr root.asInt();return true;case 2:*(int16_t*)ptr root.asInt();return true;case 4:*(int32_t*)ptr root.asInt();return true;case 8:*(int64_t*)ptr root.asInt64();return true;default:return false;}}}for (auto t : buildin_unsigned) {if (type t) {switch (type_size(type)){case 1:*(uint8_t*)ptr root.asUInt();return true;case 2:*(uint16_t*)ptr root.asUInt();return true;case 4:*(uint32_t*)ptr root.asUInt();return true;case 8:*(uint64_t*)ptr root.asUInt64();return true;default:return false;}}}return false;} demo效果 在release下执行tcdumpTest.exe 看效果 注意使用前先看‘使用说明.txt’需要先注册\DIA SDK\bin\msdia120.dll。 定义类、结构体 Class Ctest{Public:Int M_i 1;Float M_f 0.1;Double M_d 0.2;Char M_c a;Std::String M_str Hello World;Std::VectorInt M_v;Std::MapInt, Std::String M_map;}; 赋值 Ctest Test;Test.M_v.Push_back(1);Test.M_v.Push_back(2);Test.M_v.Push_back(3);Test.M_map.Insert({ 1,hello });test.m_map.insert({ 2,world }); 初始化tcDump并序列化对象 int ret TCDUMP_INIT(R(..\tcDumpTest.pdb));if (ret 0) {std::cout load pdb failed !!! std::endl;return 0;}// 打印 test 变量内容已json格式输出auto retJson TCDUMP(test);if (NULL retJson) {return false;}std::cout retJson std::endl; 序列化结果retJson输出 附加接口 能够通过已知结构体大小返回大小一致的结构体名称 // 打印pdb中大小为 n的类和结构体名称std::cout tcDump_GetSizeClass(sizeof(CTest)) std::endl;输出---{ CTest }--- 工程目录 -tcdump -tcdumpTest tcdump为dll工程核心代码实现。 tcpdumpTest为测试工程。 注意点 1、本工程基于windows不支持linux 2、本工程默认支持vs2019其他版本可以自行编译。 3、使用vs2019编译时会提示map _Node 错误只需把xtree文件中对应的 _Node 从protected修改为public并重新编译即可 4、使用前先看‘使用说明.txt’需要先注册\DIA SDK\bin\msdia120.dll。
http://www.yutouwan.com/news/249236/

相关文章:

  • 做一个企业网站要多久竞价培训
  • 做软装平台网站wordpress 注册会员默认权限
  • 天津网站建设兼职有没有做.net面试题的网站
  • 商品数据包网站开发网站开发哪便宜
  • 怎么做自己的淘宝客网站全国十大婚恋网站排名
  • 乐山乐人网站建设公司最近中美关系最新消息
  • 建网站需要数据库吗代刷网站只做软件吗
  • 网站开发技术报告模板网址免费生成app
  • 河南免费网站建设哪家好企业网站推广名词解释
  • 衡水做网站开发的windows优化大师功能
  • 中国网站服务器哪个好如何进行网站管理
  • 做网站 小程序前景html网页设计模板免费下载
  • 昆明网站制作网页html网站留言板代码
  • 如何做微信网站防封昆明房地产网站开发
  • 网站上的验证码怎么做WordPress会话有效时间
  • 乐清企业网站建站产品外包装设计网站
  • 网络公司名字大全简单好听网站如何合理建设seo
  • 网站开发包括网站的 等过程高德地图有外资背景吗
  • 医院做网站怎么做一小时学会网站建设
  • 电脑下载17zwd一起做网站网站建网站建设设
  • 包车哪个网站做的最好网站域名指什么
  • 什么网站可以做海报赚钱中企动力是500强吗
  • 建设网站花费知名企业文化案例
  • 各种网站末班wordpress淘宝客 瀑布流
  • 做瞹瞹嗳视频网站在线观看网站建设案例价格
  • wordpress中搜索页面百度关键词seo排名
  • 低多边形生成网站WordPress点击看大图
  • 陆金所网站开发二部企业网站完整版
  • 一起做网店官方网站店铺位置怎么免费注册定位
  • 电商网站开发合同免备案云服务器租用