糖炒栗子

cheap to talk,show muscle would be better...

导航

2012年6月26日 #

Delphi中CoInitialize之探究

摘要: CoInitialize(LPVOID),它将以特定参数调用CoInitializeEx,为当前单元初始化COM库,并标记协同模式为单线程模式。参数必须为NULL。这是关于OLE和COM的问题。CoInitializeEx(LPVOID),新版本,可以用参数指定协同模式,如多线程模式,但注意单元的协同模式是不能改的,如果在已经初始化为多线程的单元里初始化OLE将失败并返回RPC_E_CHANGED_MODE。每个线程只要调用一次初始化就够了,同一线程中的后续调用也将通过,但会返回S_FALSE。后面解除初始化调用要与本调用一一对应,返回S_FALSE的CoInitialize调用也计算在内。应 阅读全文

posted @ 2012-06-26 15:02 糖炒栗子 阅读(7030) 评论(0) 推荐(0) 编辑

创建TXMLDocument对象

摘要: 动态创建TXMLDocument对象时(不预先从组件面板拉一个XML组件到在form或其他组件上,纯粹在代码中创建),如果所创建对象未指定其生存周期所依赖的组件时,则在读取该对象属性及属性值时会出现Access violation。为所创建TXMLDocument对象指定其生存周期所依赖的组件,xmlDoc := TXMLDocument.Create(self);或者创建组件对象。调用IXmlDocument创建对象时,不会出现此类错误,即可用xmlDoc := TXMLDocument.Create(nil)。 阅读全文

posted @ 2012-06-26 14:51 糖炒栗子 阅读(290) 评论(0) 推荐(0) 编辑