在Delphi控制台应用程序中使用IXML

时间:2014-11-26 16:33:55

标签: xml delphi console-application

使用XML数据绑定,我创建了一个读取xml文件的程序。如果我运行GUI程序(Delphi XE7),它工作正常。但是,我需要将其设置为可在命令行上使用的控制台应用程序。我可以运行该程序,但是一旦我想加载xml文件,我就会收到一个错误:“不支持接口”。

问题似乎在:

function Loadconversation(const FileName: string): IXMLConversation;
 begin
  Result := LoadXMLDocument(FileName).GetDocBinding('conversation', TXMLConversation,
                                            TargetNamespace) as IXMLConversation;
 end;

日Thnx。 阿尔扬

1 个答案:

答案 0 :(得分:3)

GUI应用程序与导致这种行为差异的控制台应用程序之间最明显的区别是,默认情况下,COM未针对控制台应用程序进行初始化。对于GUI应用程序,框架会自动初始化COM,但对于控制台应用程序,这不会发生。

因此,在控制台应用程序的开头添加对CoInitializeEx的调用。

CoInitializeEx(nil, COINIT_APARTMENTTHREADED);