VC轻松解析XML文件 - CMarkup类的使用方法

巴哈大赛2026车检攻略:预检查与电池箱避坑指南 赛车安全是任何竞技赛事都绕不开的核心命题,巴哈大赛也不例外。随着赛事规则逐年细化,车检已从单纯的合规查验演变为一套涵盖静态、动态与复检的系统化安全评估流程,其中预检查和电池箱检查更是决定车队能否顺利入场的关键环节。理解车检规则背后的安全原理,例如绝缘防护、可靠固定与应急断电逻辑,不仅有助于提升赛车的工程可靠性,也能显著降低现场整改的时间成本。无论是燃油车组的低压电池箱,还是电动车的动力电池系统,掌握抓握力、回路保护、标识规范等基础要点,都能让车队在赛前准备中更有方向感。本文基于一线检车经验,剖析预检查高频问 阅读详情

VC轻松解析XML文件 - CMarkup类的使用方法

VC解析XML文件的工具有很多,CMarkup, tinyXML,还有IBM的,MS的等等。
据说tinyXML很好,可能字符集问题,我编译不了。
所以就用CMarkup来解析,使用过后,觉得非常不错,使用起来很方便。
CMarkup下载地址:http://www.firstobject.com/
发现网上有方法很法,我就摘下来了

//----------UserInfo.xml--------------    
xml version="1.0" encoding="UTF-8" ?>     
 <UserInfo>    
  <UserID>luo</UserID>     
  <UserID>lin</UserID>     
  </UserInfo>   
//----------UserInfo.xml--------------
xml version="1.0" encoding="UTF-8" ?> 
 <UserInfo>
 <UserID>luo</UserID> 
 <UserID>lin</UserID> 
 </UserInfo>


1. 生成UserInfo.xml

 

CMarkup xml;     
xml.SetDoc("xml version=/"1.0/" encoding=/"UTF-8/"?>/r/n");     
xml.AddElem("UserInfo");     
xml.IntoElem();     
xml.AddElem("UserID","luo");     
xml.AddElem("UserID","lin");     
xml.OutOfElem();     
xml.Save("UserInfo.xml");    
CMarkup xml; 
xml.SetDoc("xml version=/"1.0/" encoding=/"UTF-8/"?>/r/n"); 
xml.AddElem("UserInfo"); 
xml.IntoElem(); 
xml.AddElem("UserID","luo"); 
xml.AddElem("UserID","lin"); 
xml.OutOfElem(); 
xml.Save("UserInfo.xml");


2. 浏览特定元素

CMarkup xml;     
xml.Load("UserInfo.xml");     
BOOL bFind = true;     
xml.ResetMainPos();     
while (xml.FindChildElem("UserID");)     
{     
      //此时接点还是父接点     
        CString strTagName = _T("");     
        CString strData = _T("");     
        strTagName = xml.GetChildTagName();     
        strData = xml.GetChildData();     
        TRACE("/n---tagName:%s,Data:%s--/n",strTagName,strData);     
}     
      /********************这样也可以******************    
      CMarkup xml;    
      xml.Load("UserInfo.xml");    
      BOOL bFind = true;    
      xml.ResetMainPos();    
         
      while (xml.FindChildElem("UserID");)    
      {    
                    xml.IntoElem();    
                    CString strTagName = _T("");    
                    CString strData = _T("");    
                    strTagName = xml.GetTagName();    
                    strData = xml.GetData();    
                    TRACE("/n---tagName:%s,Data:%s--/n",strTagName,strData);    
                    xml.OutOfElem();    
      }*/     
      /**************这样也可以**********************    
      CMarkup xml;    
      xml.Load("UserInfo.xml");    
      BOOL bFind = true;    
      xml.ResetMainPos();    
      xml.FindElem();  //UserInfo    
      xml.IntoElem();    
      while (xml.FindElem("UserID");)    
      {    
                    CString strTagName = _T("");    
                    CString strData = _T("");    
                    strTagName = xml.GetTagName();    
                    strData = xml.GetData();    
                    TRACE("/n---tagName:%s,Data:%s--/n",strTagName,strData);    
      }    
      */     


//-------------结果----------    
---tagName:UserID,Data:luo--
---tagName:UserID,Data:lin—

CMarkup xml; 
xml.Load("UserInfo.xml"); 
BOOL bFind = true; 
xml.ResetMainPos(); 
while (xml.FindChildElem("UserID");) 
{ 
      //此时接点还是父接点 
        CString strTagName = _T(""); 
        CString strData = _T(""); 
        strTagName = xml.GetChildTagName(); 
        strData = xml.GetChildData(); 
        TRACE("/n---tagName:%s,Data:%s--/n",strTagName,strData); 
} 
      /********************这样也可以****************** 
      CMarkup xml; 
      xml.Load("UserInfo.xml"); 
      BOOL bFind = true; 
      xml.ResetMainPos(); 
      
      while (xml.FindChildElem("UserID");) 
      { 
                    xml.IntoElem(); 
                    CString strTagName = _T(""); 
                    CString strData = _T(""); 
                    strTagName = xml.GetTagName(); 
                    strData = xml.GetData(); 
                    TRACE("/n---tagName:%s,Data:%s--/n",strTagName,strData); 
                    xml.OutOfElem(); 
      }*/ 
      /**************这样也可以********************** 
      CMarkup xml; 
      xml.Load("UserInfo.xml"); 
      BOOL bFind = true; 
      xml.ResetMainPos(); 
      xml.FindElem();  //UserInfo 
      xml.IntoElem(); 
      while (xml.FindElem("UserID");) 
      { 
                    CString strTagName = _T(""); 
                    CString strData = _T(""); 
                    strTagName = xml.GetTagName(); 
                    strData = xml.GetData(); 
                    TRACE("/n---tagName:%s,Data:%s--/n",strTagName,strData); 
      } 
      */ 


//-------------结果----------
---tagName:UserID,Data:luo--
---tagName:UserID,Data:lin—

3. 修改

//--------把UserID为”luo”改为”flypigluo”-----------

BOOL bLoadXml = false;     
CMarkup xml;     
bLoadXml = xml.Load("UserInfo.xml");     
      if (bLoadXml)     
      {     
              CString strUserID = _T("");     
              xml.ResetMainPos();     
              xml.FindElem();     
              xml.IntoElem();     
              while (xml.FindElem("UserID"))     
              {     
                    strUserID = xml.GetData();     
                    if (strUserID=="luo")     
                    {     
                            xml.SetData(CString("flypig")+strUserID);     
                            xml.Save("UserInfo.xml");     
                            break;     
                    }     
              }     
      }    
//--------把UserID为”luo”改为”flypigluo”----------- 
BOOL bLoadXml = false; 
CMarkup xml; 
bLoadXml = xml.Load("UserInfo.xml"); 
      if (bLoadXml) 
      { 
              CString strUserID = _T(""); 
              xml.ResetMainPos(); 
              xml.FindElem(); 
              xml.IntoElem(); 
              while (xml.FindElem("UserID")) 
              { 
                    strUserID = xml.GetData(); 
                    if (strUserID=="luo") 
                    { 
                            xml.SetData(CString("flypig")+strUserID); 
                            xml.Save("UserInfo.xml"); 
                            break; 
                    } 
              } 
      }


4. 添加

4.1  添在最后面(使用的是AddElem)

//加在最后面

BOOL bLoadXml = false;     
      CMarkup xml;     
      bLoadXml = xml.Load("UserInfo.xml");     
      if (bLoadXml)     
      {     
              xml.ResetMainPos();     
              xml.FindElem();     
              xml.IntoElem();     
              xml.AddElem("UserID","luoluo");     
              xml.OutOfElem();     
              xml.Save("UserInfo.xml");     
      }     
//--------原来为------     
xml version="1.0" encoding="UTF-8" ?>     
<UserInfo>     
  <UserID>luo</UserID>     
  <UserID>lin</UserID>     
  </UserInfo>     
//---------添加后为-------------     
xml version="1.0" encoding="UTF-8" ?>     
<UserInfo>     
  <UserID>luo</UserID>     
  <UserID>lin</UserID>     
  <UserID>luoluo</UserID>     
  </UserInfo>


4.2  加在最前面(使用InsertElem)

BOOL bLoadXml = false;     
CMarkup xml;     
bLoadXml = xml.Load("UserInfo.xml");     
if (bLoadXml)     
{     
      xml.ResetMainPos();     
      xml.FindElem();     
      xml.IntoElem();     
      xml.InsertElem("UserID","AddUserIDHead");     
      xml.OutOfElem();     
      xml.Save("UserInfo.xml");     
}     
//----原来为—     
xml version="1.0" encoding="UTF-8" ?>     
<UserInfo>     
  <UserID>luo</UserID>     
  <UserID>lin</UserID>     
  </UserInfo>     
//------修改后-----     
xml version="1.0" encoding="UTF-8" ?>     
<UserInfo>     
  <UserID>AddUserIDHead</UserID>     
  <UserID>luo</UserID>     
  <UserID>lin</UserID>     
  </UserInfo>    
BOOL bLoadXml = false; 
CMarkup xml; 
bLoadXml = xml.Load("UserInfo.xml"); 
if (bLoadXml) 
{ 
      xml.ResetMainPos(); 
      xml.FindElem(); 
      xml.IntoElem(); 
      xml.InsertElem("UserID","AddUserIDHead"); 
      xml.OutOfElem(); 
      xml.Save("UserInfo.xml"); 
} 
//----原来为— 
xml version="1.0" encoding="UTF-8" ?> 
<UserInfo> 
  <UserID>luo</UserID> 
  <UserID>lin</UserID> 
  </UserInfo> 
//------修改后----- 
xml version="1.0" encoding="UTF-8" ?> 
<UserInfo> 
  <UserID>AddUserIDHead</UserID> 
  <UserID>luo</UserID> 
  <UserID>lin</UserID> 
  </UserInfo>


5. 删除

CMarkup xml;     
xml.Load("UserInfo.xml");     
BOOL bFind = true;     
xml.ResetMainPos();          
while (bFind)     
{     
      bFind = xml.FindChildElem("UserID");     
      if (bFind)     
      {     
              //此时接点还是父接点     
              CString strData = _T("");     
              strData = xml.GetChildData();     
              if (strData=="luo")     
              {     
                    xml.RemoveChildElem();     
                    xml.Save("UserInfo.xml");     
                    break;     
              }     
      }     
}    
CMarkup xml; 
xml.Load("UserInfo.xml"); 
BOOL bFind = true; 
xml.ResetMainPos();      
while (bFind) 
{ 
      bFind = xml.FindChildElem("UserID"); 
      if (bFind) 
      { 
              //此时接点还是父接点 
              CString strData = _T(""); 
              strData = xml.GetChildData(); 
              if (strData=="luo") 
              { 
                    xml.RemoveChildElem(); 
                    xml.Save("UserInfo.xml"); 
                    break; 
              } 
      } 
}


 

6. 查找
见第二点浏览。类似上面的例子里面没有属性这些东西,下面的一个例子是有属性的

//UserInfo1.xml     
xml version="1.0" encoding="UTF-8" ?>     
<UserInfo>     
  <User UserID="UserID00" UserPwd="UserPwd00" UserLevel="158" />     
  <User UserID="UserID01" UserPwd="UserPwd01" UserLevel="162" />     
  <User UserID="UserID02" UserPwd="UserPwd02" UserLevel="165" />     
  <User UserID="UserID03" UserPwd="UserPwd03" UserLevel="168" />     
  <User UserID="UserID04" UserPwd="UserPwd04" UserLevel="171" />     
  <User UserID="UserID05" UserPwd="UserPwd05" UserLevel="175" />     
  <User UserID="UserID06" UserPwd="UserPwd06" UserLevel="178" />     
  <User UserID="UserID07" UserPwd="UserPwd07" UserLevel="181" />     
  <User UserID="UserID08" UserPwd="UserPwd08" UserLevel="184" />     
  <User UserID="UserID09" UserPwd="UserPwd09" UserLevel="188" />     
  </UserInfo>    
//UserInfo1.xml 
xml version="1.0" encoding="UTF-8" ?> 
<UserInfo> 
  <User UserID="UserID00" UserPwd="UserPwd00" UserLevel="158" /> 
  <User UserID="UserID01" UserPwd="UserPwd01" UserLevel="162" /> 
  <User UserID="UserID02" UserPwd="UserPwd02" UserLevel="165" /> 
  <User UserID="UserID03" UserPwd="UserPwd03" UserLevel="168" /> 
  <User UserID="UserID04" UserPwd="UserPwd04" UserLevel="171" /> 
  <User UserID="UserID05" UserPwd="UserPwd05" UserLevel="175" /> 
  <User UserID="UserID06" UserPwd="UserPwd06" UserLevel="178" /> 
  <User UserID="UserID07" UserPwd="UserPwd07" UserLevel="181" /> 
  <User UserID="UserID08" UserPwd="UserPwd08" UserLevel="184" /> 
  <User UserID="UserID09" UserPwd="UserPwd09" UserLevel="188" /> 
  </UserInfo>


 

7. 产生

CString strID = _T("");     
      CString strPwd = _T("");     
      CMarkup xml;     
      xml.SetDoc("xml version=/"1.0/" encoding=/"UTF-8/"?>");     
      xml.AddElem("UserInfo");     
      xml.IntoElem();     
      for (int i=0; i<10; i++)     
      {     
              //产生一个随机数,作为权限     
              srand(UINT(time(NULL)+i));     
              int nLevel = rand()%256;     
              strID.Format("UserID%02d",i);     
              strPwd.Format("UserPwd%02d",i);     
              xml.AddElem("User");     
              xml.AddAttrib("UserID",strID);     
              xml.AddAttrib("UserPwd",strPwd);     
              xml.AddAttrib("UserLevel",nLevel);     
      }     
      xml.OutOfElem();     
      xml.Save("UserInfo1.xml");    
CString strID = _T(""); 
      CString strPwd = _T(""); 
      CMarkup xml; 
      xml.SetDoc("xml version=/"1.0/" encoding=/"UTF-8/"?>"); 
      xml.AddElem("UserInfo"); 
      xml.IntoElem(); 
      for (int i=0; i<10; i++) 
      { 
              //产生一个随机数,作为权限 
              srand(UINT(time(NULL)+i)); 
              int nLevel = rand()%256; 
              strID.Format("UserID%02d",i); 
              strPwd.Format("UserPwd%02d",i); 
              xml.AddElem("User"); 
              xml.AddAttrib("UserID",strID); 
              xml.AddAttrib("UserPwd",strPwd); 
              xml.AddAttrib("UserLevel",nLevel); 
      } 
      xml.OutOfElem(); 
      xml.Save("UserInfo1.xml");


 

8. 查找

CMarkup xml;     
BOOL bLoad = false;     
BOOL bFind = false;     
bLoad = xml.Load("UserInfo1.xml");     
      if (bLoad)     
      {     
              CString strID;     
              CString strPwd;     
              xml.ResetMainPos();     
              xml.FindElem();    //UserInfo     
              while (xml.FindChildElem("User"))     
              {     
                    strID = xml.GetChildAttrib("UserID");     
                    strPwd = xml.GetChildAttrib("UserPwd");     
                    TRACE("/n----id:%s,pwd:%s-------/n",strID,strPwd);     
                    if (strID=="UserID00"&&strPwd=="UserPwd00")     
                    {     
                            bFind = true;     
                            break;     
                    }     
              }     
      }     
      if (bFind)     
      {     
              TRACE("/n---- find------/n");     
      }     
      else     
      {     
              TRACE("/n----no find------/n");     
      }    
CMarkup xml; 
BOOL bLoad = false; 
BOOL bFind = false; 
bLoad = xml.Load("UserInfo1.xml"); 
      if (bLoad) 
      { 
              CString strID; 
              CString strPwd; 
              xml.ResetMainPos(); 
              xml.FindElem();    //UserInfo 
              while (xml.FindChildElem("User")) 
              { 
                    strID = xml.GetChildAttrib("UserID"); 
                    strPwd = xml.GetChildAttrib("UserPwd"); 
                    TRACE("/n----id:%s,pwd:%s-------/n",strID,strPwd); 
                    if (strID=="UserID00"&&strPwd=="UserPwd00") 
                    { 
                            bFind = true; 
                            break; 
                    } 
              } 
      } 
      if (bFind) 
      { 
              TRACE("/n---- find------/n"); 
      } 
      else 
      { 
              TRACE("/n----no find------/n"); 
      }


 

9. 修改

CMarkup xml;     
      BOOL bLoad = false;     
      BOOL bFind = false;     
      bLoad = xml.Load("UserInfo1.xml");     
      if (bLoad)     
      {     
              CString strID;     
              CString strPwd;     
              xml.ResetMainPos();     
              xml.FindElem();    //UserInfo     
              while (xml.FindChildElem("User"))     
              {     
                    strID = xml.GetChildAttrib("UserID");     
                    strPwd = xml.GetChildAttrib("UserPwd");     
                    TRACE("/n----id:%s,pwd:%s-------/n",strID,strPwd);     
                    if (strID=="UserID00"&&strPwd=="UserPwd00")     
                    {     
                            bFind = true;     
                            xml.SetChildAttrib("UserID",strID+CString("Modify"));     
                            xml.Save("UserInfo1.xml");     
                            break;     
                    }     
              }     
      }     
      if (bFind)     
      {     
              TRACE("/n---- find------/n");     
      }     
      else     
      {     
              TRACE("/n----no find------/n");     
      }    


 

CMarkup字符集问题
daubwu posted @ 2008年9月08日 00:54 in VC with tags XML CMarkup , 38 阅读
CMarkup支持Unicode,_MBCS宏定义。VS默认设置为MBCS宏定义,未设置该宏时为UTF-8编码。
有 MBCS宏定义,且 打开的文件是UTF-8编码:
CMarkup在Load时将UTF-8转换ANSI编码格式,所以要在读取的地方设置

#include <locale.h>
setlocale(LC_ALL, "");


 

没有MBCS宏定义,且打开的文件是UTF-8编码:
系统默认将文件按UTF-8格式读入系统中,所以显示的时候要手动将数据转换为ANSI格式的进行显示

 

#include <locale.h>
setlocale(LC_ALL, "");
strVal = CMarkup::UTF8ToA(strVal);


 

PS:通过strcpy等拷贝函数可以修正

CMarkUp使用实例 最近正在研究C++下的XML分析工具CMarkup。想在C++下发掘XML的强大,结果却发现建房子你除了需要基本的建设材料外,还需要些而外的工具。不像C#那样,已经打成包供你直接使用了。好在有知道CMarkup这个小型XML的分析器,可以为我所用。俗话说:磨刀不误砍柴工。我现在就来磨下刀。 立即下载

相关推荐

CMarkup11.2及帮助文档

创建一个新的XML文档,分析修改现存的XML文档,所有的这些都中可以从一个利用MFC或STL字符串所实现的一个简单类的方法中得到。关于CMarkup,你可以运行Zip文件右边的例子,如果你愿意,你可以通过看源码,几分钟把它加入到你自己的应用中。 特征 Cmarkup是依据EDOM的,这是这个简单XML分析的关键。EDOM是操作XML元素、属性和数据的简明方法集。当你不需要复杂的XML特性时,它避免你读大量的DOM和SAX文档。 如果你希望使用微软的MSXML,CMarkup工程中CmarkupMSXML类全面的演示了通过EDOM来使用MSXML,并且它是以C++ COM语法开始。 下载包(看上面zip文件的链接)中包含了测试对话框工程的源码、Cmarkup类的所有测试和示例、以及编译选项。关于用在商业用途中的详细说明请看文章底部的在Licensing中的注意事项。 下面列出了CMarkup的特征: 独立:不需要任何外部的XML组件。 小:编译到你的工程只是很小的一个类,并且对于文档只维持了一个字符串,以及一个总计小于字符串内存大小的索引数组。 快:分析器在相当快的建立索引数组。 简单:EDOM方法使创建、导航和修改XML无比的简单。 MSXML:CMarkupMSXML类用EDOM方法包装了微软的XML服务。MSXML编译选项用来演示这个类。 UNICODE(统一字符编码标准):对于WindowsNT和WindowsCE平台能够被编译成UNICODE,在WindowsNT UNICODE下,XML文档是流到UTF-8文件中,但是内部用宽字符。 UTF-8:对于UTF-8文件,这接受和返回UTF-8字符串(确保_MBCS没有被定义) MBCS:对于双字节数据(定义_MBCS),它不与UTF-8兼容. STL:CMarkupSTL类完全没有使用MFC,它的演示要使用STL编译选项。

CMarkup 函数

1、初始化 Load 导入一个XML文件到CMarkup的对象中,并对它进行解析。 SetDoc 从字符串中导入XML数据,并对它解析。 2、输出 Save 将XML数据写入文件中。 GetDoc 将整个XML数据文档作为字符串返回。 3、改变当前位置 FindElem 定位到下一个元素,可能和一个标签名或路径匹配。 FindChildElem 定位到下一个子元素,匹配元素名或路径。 Find...

风飘红技术中心 1362

CMarkup源码 XML创建及解析

简单实用的XML解析源码,开发的时候用到所以研究了下,现在分享出来给大家。 下载后取出里面的Markup.cpp和Markup.h,导入你的工程里面,CMarkup类就可以用了。其中的MSXML是另一套解析源码,主要使用COM,大家可以研究一下,我没用过这个。 另外从网上整理了一些CMark函数简介及相关实例,请点击复制以下链接查看: http://blog.youkuaiyun.com/dongdan_002/article/details/41721477

CMarkup概述

CMarkup概述7.2版本, 2004年9月27日Markup72.zip 422k 原文出自http://www.firstobject.com/dn_markup.htm 创建一个新的XML文档,分析修改现存的XML文档,所有的这些都中可以从一个利用MFC或STL字符串所实现的一个简单类的方法中得到。关于CMarkup,你可以运行Zip文件右边的例子,如果你愿意,你可以通过看源码,几分钟把它

知足者常乐 1万+

VC实现XML解析CMarkup

VC++实现的XML解析技术,代码被封装成一个类,可以方便地在C++源码中使用。

松材线虫病害智能检测:基于YOLOv8的无人机航拍数据集构建与模型优化

本文探讨了基于YOLOv8的无人机航拍技术在松材线虫病害智能检测中的应用。通过构建高质量巡检数据集和优化模型架构(如RepVit主干网络和跨尺度特征融合模块),显著提升了病害识别准确率。该方案在复杂森林环境中表现出色,将检测效率提高数倍,为林业病害防控提供了高效解决方案。

vulkan6gpu的博客 995

[转载]VC轻松解析XML文件 - CMarkup类的使用方法

CMarkup xml; xml.Load("UserInfo.xml"); BOOL bFind = true; xml.ResetMainPos(); while (xml.FindChildElem("UserID");) { //此时接点还是父接点 CString strTagName = _T(""); CString strData = _T(""); strTagName = xml.GetChil

wqvbjhc的专栏 4305

支付漏洞防护绕过的一种方式

放完包后就到了提交订单的地方,可以发现,金额确实小了很多,合理的搭配的话还可以更低,再次前进可以发现,金额确实是这么多,后面就不支付了,到此就结束了。也就是说数量可以为负数,但是金额不能为0或者0以下,有什么方法可以绕过这个限制吗,其实并不难,既然可以为负数,只是对金额不能为0或者负数做了限制。我们可以尝试拼接法,利用负数加上正数让他的值变得很低,但是又大于0就可以了,这里利用购物车的结算方法,随机加一些在购物车里。这里为了方便查看数据包,我这边商品的数量选择3,点击立即购买并抓包。

2301_80115097的博客 1529

转载 VC轻松解析XML文件 - CMarkup类的使用方法

VC轻松解析XML文件 - CMarkup类的使用方法http://www.cctry.com/thread-3866-1-1.html VC解析XML文件的工具有很多,CMarkup, tinyXML,还有IBM的,MS的等等。据说tinyXML很好,可能字符集问题,我编译不了。所以就用CMarkup来解析,使用过后,觉得非常不错,使用起来很方便。CM...

weixin_33762130的博客 98

小红书x-mini签名逆向实战:Frida动态Hook与算法还原

在移动App协议分析中,请求签名机制是保障接口安全的核心技术,其本质是客户端对请求参数、时间戳、设备指纹等要素进行加密认证的过程。理解签名原理需掌握Native层加密流程、JNI调用机制及密钥动态派生逻辑。Frida作为主流动态插桩工具,能绕过符号剥离、字符串加密和控制流混淆等反分析手段,在函数执行瞬间捕获寄存器状态、内存数据与调用上下文,实现签名算法的完整还原。该技术广泛应用于合规内容监测、API自动化调用与竞品协议研究等工程场景。本文聚焦小红书x-mini签名这一典型样本,详解从JNI_OnLoad定位

weixin_31264565的博客 461

S32K144之芯片锁死解锁——关闭debug端口

S32K144之芯片锁死及解锁 经常捣鼓单片机就会发现,时常会因为某些操作不当导致芯片锁死情况的发生,通过Jlink我们可以读到芯片的ID,但是无法进行Debug,这很是让人苦恼。 基于S32K144的芯片锁死,一般有如下几种可能: 1、时钟配置异常,过高的配置时钟频率以及不配置时钟,都有可能造成芯片保护锁死,我就曾经因为不注意把时钟配置代码注释掉,导致芯片锁死。 2、我是微软雅黑烧写断电,如果在...

weixin_41935674的博客 1万+

VC轻松解析XML文件--CMarkup使用方法(解决解析中文字符出现乱码问题)

VC解析XML文件的工具有很多,CMarkup, 感谢作者http://canaan.jimdo.com/2009/05/25/vc轻松解析xml文件/ tinyXML,还有IBM的,MS的等等。据说tinyXML很好,可能字符集问题,我编译不了。所以就用CMarkup来解析,使用过后,觉得非常不错,使用起来很方便。CMarkup下载地址:htt

xuanwu1015的专栏 9775

获取本机正版windows10激活密钥,以及正版office

本方法面向的是以前买过笔记本电脑给你预装了正版系统,激活了正版office(一般是家庭版)的情况,其他情况请自行尝试。

qq_45774917的博客 2万+

VC轻松解析XML文件--CMarkup使用方法

VC解析XML文件的工具有很多,CMarkup, 感谢作者http://canaan.jimdo.com/2009/05/25/vc轻松解析xml文件/tinyXML,还有IBM的,MS的等等。据说tinyXML很好,可能字符集问题,我编译不了。所以就用CMarkup来解析,使用过后,觉得非常不错,使用起来很方便。CMarkup下载地址:http://www.firstobject.com/发

mychenmeng的专栏 458

Yolov26 在 Rk3588 上的 Rknn Onnx 部署实践(c++)

本文介绍了YOLOv26在RK3588平台的C++推理部署方案。重点包括:1)扩展Ultralytics导出格式,新增RKNN_ONNX专用导出选项;2)重构Detect Head结构,使其更适合RKNN推理;3)提供C++侧后处理实现建议。该方案保留了Ultralytics训练生态,通过优化模型结构输出,将解码等操作移至C++端,充分发挥Rockchip NPU性能。适用于RK3588/RK356x等平台,需配合rknn-toolkit2使用,为YOLOv26的嵌入式部署提供完整解决方案。

qq_64366203的博客 2178

ABAP 系统里使用 SAP Joule 辅助编程的前提条件

只是说这些大语言模型是针对互联网上能够挖掘到的所有数据进行训练,不像 SAP Joule 那样术业有专攻,仅仅深耕 SAP 技术和业务领域,因此大伙儿对 SAP Joule 的期望值,也远远高于通过大语言模型。SAP Joule 从 ABAP Development Tool 的 Chat 窗口中接收到的对话请求,都会路由到 SAP BTP 上的 AI Foundation.在上述 ABAP 环境中启用 SAP Joule,需要购买额外的 license:8019124.

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 799

vc中操作Xml--使用CMarkup类

vc中操作Xml--使用CMarkup类 http://www.firstobject.com/dn_markup.htm DotNet中使用xml相对比较轻松,在vc中操作xml,有些繁琐。最近在网络上得知CMarkup比较好用,于是试了下,还好,就把部分例子写出来

MOKA 501

PY32F406K1CU6 FLASH模拟EEPROM

摘要:本文介绍了基于STM32 FLASH模拟EEPROM的实现方法。头文件flash.h定义了FLASH页大小(256字节)、用户存储区域(4页)及地址范围,提供了等待周期配置和地址校验宏,声明了EEPROM初始化、读写操作等函数接口。源文件flash.c实现了具体功能:配置FLASH等待周期(144MHz需3WS)、页读写擦除操作,以及EEPROM初始化(解锁-擦除-验证-锁定)和缓冲区读写功能。其中写操作采用"读页→更新→擦除→编程"的流程,确保数据安全写入。该方案适用于需要非易失

sam的博客 195

VC操作XML

转载自:博客园http://www.cnblogs.com/ciey/archive/2009/08/05/1539760.html http://www.firstobject.com/dn_markup.htm DotNet中使用xml相对比较轻松,在vc中操作xml,有些繁琐。最近在网络上得知CMarkup比较好用,于是试了下,还好,就把部分例子写出来。以后有时间的话,再写清楚点。

除却猩猩不是猿 910

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: CDialogSK---一个支持皮肤化的对话框类
下一篇: BSTR,_bstr_t,CComBSTR,VARIANT,_variant_t,CString的转换
erick08
博客等级 码龄18年 24粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值