使用TIdUDPServer接收xml文件时,TXMLDocument类和TIdUDPServer的ThreadedEvent冲突问题? ( 积分: 100 )

  • 主题发起人 主题发起人 he_kai
  • 开始时间 开始时间
H

he_kai

Unregistered / Unconfirmed
GUEST, unregistred user!
两台机器上的程序使用xml作为数据交换的方式,通讯使用的是TIdUDPServer类。
1、如果TIdUDPServer地ThreadedEvent属性设为true,则在IdUDPServer1UDPRead事件中使用
TXMLDocument的LoadFromStream接收数据时产生一个错误。
2、如果TIdUDPServer地ThreadedEvent属性设为false,则在IdUDPServer1UDPRead事件中使用TXMLDocument的LoadFromStream接收数据一切正常。。。。

求达人解答,并给出解决方法(我还是想把ThreadedEvent设为true)
 
产生的错误为“没有调用CoInitialize”
 
换了一个办法解决了。。将TXMLDocument的DOMVendor换成‘Open Xml’就可以用了。。等几天看看有没有人解答为什么'MSXML'和TIdUDPServer地ThreadedEvent属性冲突的问题吧
 
ThreadedEvent为True,OnRead事件将在独立的线程内执行。线程要访问任何COM对象(ActiveX对象)都需要首先调用CoInitialize函数,使用完后试用CoUninitialize函数卸载。其实主线程也调用了CoInitialize函数,只不过是在Application.Initialize方法里面调用的,平时你不知道而已。
 
zqw0117
有没有办法解决这个问题,如果可以100全部送上
 
接受答案了.
 
后退
顶部