操作XML出现“应用程序出现严重错误,必须被关闭”

Johnny_Depp 2011-12-17 04:53:03
程序在有些板子上运行正常,在部分板子上出现“应用程序出现严重错误,必须被关闭”的错误

我写了日志文件,发现在操作XML的时候报错
使用的是XmlDocument 类,有在Load()文件的时候就报错
也有在读取xml节点的时候报错

找不到根本原因,感觉是内存的问题

如果我在线debug的话,是不会有问题,并且debug后的板子就能正常运行程序
还出现过同样程序copy两份,前一份不正常的程序又可以正常运行
也出现过调整xml文件的节点顺序,它又可以正常运行
...全文
530 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
假使你在这里 2013-07-26
  • 打赏
  • 举报
回复
我的程序也出现了这个问题,不过我没有操作XML,也不知道什么时候出来的。有时候运行好几天就出这个框框。然后有时候开机就有,怎么启动 也起不来。谁能告诉告诉我怎么弄呢~我是个菜菜菜鸟~~~~~~~~~~
老侯 2012-03-28
  • 打赏
  • 举报
回复
我用的vb.net ,xmldocument没有dispose方法.
vivian_sxg 2012-03-28
  • 打赏
  • 举报
回复
一般情况
if(myDc)
delete myDc ;
myDc = new XmlDocument();
放在构造函数中,


并在析构函数中调用
delete myDc ;
vivian_sxg 2012-03-28
  • 打赏
  • 举报
回复
(1)如果XML文件比较大,有可能出错
(2)如果
PubGlobalDefine.xmloperator = new XmlOperator("\\NandFlash\\Client\\abc.xml");
LogManager.Write("完成本地配置文件的载入");
PubGlobalDefine.xmloperator.initConfigXML();
LogManager.Write("完成本地配置文件初始化 62#");
调用多次,
XmlOperator类中应该有delete XmlDocument 的操作,不然内存会泄露
老侯 2012-03-28
  • 打赏
  • 举报
回复
我也遇到了同样问题,也是在wince上写自己的程序,在线debug没问题,一旦生成可执行文件拷到机器上运行就会出错.不过我的是在退出程序时出错.我也用了xml作为配置文件.
Johnny_Depp 2011-12-20
  • 打赏
  • 举报
回复
调试串口输出信息如下


Exception 'Data Abort' (4): Thread-Id=0506001e(pth=825dd4c4), Proc-Id=0505001e(pprc=825ebc74) 'PRMClientC.exe', VM-active=0505001e(pprc=825ebc74) 'PRMClientC.exe'
PC=40d3e678(mscoree2_0.dll+0x0004e678) RA=ffff0000(???+0xffff0000) SP=0003f844, BVA=40db4000
Johnny_Depp 2011-12-19
  • 打赏
  • 举报
回复
SDK 和 WINCE 都是ARM板供应商的

我们在上面搭应用
woshi_ziyu 2011-12-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 johnny_depp 的回复:]

会不会是wince系统没有做好?

因为我在线debug后,就可以正常运行了
而在线debug的的时候,又是会部署一些文件到ce里面

而那些能跑的板子,可能是我debug调试过得
[/Quote]
你的SDK和WINCE系统是否匹配
Johnny_Depp 2011-12-19
  • 打赏
  • 举报
回复
会不会是wince系统没有做好?

因为我在线debug后,就可以正常运行了
而在线debug的的时候,又是会部署一些文件到ce里面

而那些能跑的板子,可能是我debug调试过得
Johnny_Depp 2011-12-19
  • 打赏
  • 举报
回复
PC上? wince的程序,PC上无法运行


板子灌得wince镜像是同一个,运行的程序也是同一个
有些板子能跑 有些不能跑
或者偶尔出现不能跑
当我遇上-你 2011-12-19
  • 打赏
  • 举报
回复
PC上正常不呢?
Johnny_Depp 2011-12-19
  • 打赏
  • 举报
回复
我是生成后,把整个文件夹放进去 运行


运行时文应该是做CE得时候 已经集成进去呀
jazka346704803 2011-12-18
  • 打赏
  • 举报
回复
不懂C#,不过一般这种出现严重错误都是由内存问题引起的,看是不是内存使用的地方不对,比如buffer的大小不够,或者多线程操作同一内存时没有同步好等等。
woshi_ziyu 2011-12-18
  • 打赏
  • 举报
回复
生成的文件缺少运行时文件 建议把生成的文件夹放在板子上运行 而不是单个文件
Johnny_Depp 2011-12-18
  • 打赏
  • 举报
回复
program.cs中


PubGlobalDefine.xmloperator = new XmlOperator("\\NandFlash\\Client\\abc.xml");
LogManager.Write("完成本地配置文件的载入");
PubGlobalDefine.xmloperator.initConfigXML();
LogManager.Write("完成本地配置文件初始化 62#");


public class XmlOperator
{
private string xmlPath;
private XmlDocument myDc = new XmlDocument();

/// <summary>
/// 装载配置文件
/// </summary>
/// <param name="Path">配置文件的路径</param>
public XmlOperator(string Path)
{
xmlPath = Path;
try
{
myDc.Load(xmlPath);
}
catch(Exception ex)
{
PubGlobalDefine.showErrorMsg(ex.Message);
}
}

/// <summary>
/// 读相应节点的配置文件
/// </summary>
/// <param name="nodename"></param>
public string GetXmlNodeValue(string nodename)
{
try
{
LogManager.Write("从config文件读取" + nodename);
LogManager.Write(nodename + "值为" + myDc.SelectSingleNode("system").SelectSingleNode(nodename).InnerText);
return myDc.SelectSingleNode("system").SelectSingleNode(nodename).InnerText;
}
catch (Exception e)
{
throw e;
}

}


/// <summary>
/// 初始化本地配置文件
/// </summary>
public void initConfigXML()
{
try
{
LogManager.Write("开始读取本地配置参数");
PubGlobalDefine.serialPortName = GetXmlNodeValue("Serial_PortName");
PubGlobalDefine.server_ip = GetXmlNodeValue("Server_IP");
PubGlobalDefine.server_port = Convert.ToInt16(GetXmlNodeValue("Server_Port"));
LogManager.Write("本地配置参数读取完毕");
}
catch (Exception e)
{
PubGlobalDefine.showErrorMsg("本地config文件初始化失败\n" + e.Message);
LogManager.Write("本地配置文件初始化失败");
}
}


<?xml version="1.0" encoding="utf-8" ?>
<system>
<Serial_PortName>COM3</Serial_PortName>
<Finger_Serial>COM2</Finger_Serial>
<Server_IP>192.168.0.10</Server_IP>
<Server_Port>8002</Server_Port>
<Speaker_IO>1</Speaker_IO>
</system>



有些是载入都不成功
有些是在读取XML节点时出错
当我遇上-你 2011-12-17
  • 打赏
  • 举报
回复
代码看看

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧