procedure TMainForm.GetStartDate;
var
  XMLDocFile:IXMLDocument;
  RootNode:IXMLNode;
begin
  if FileExists('config.xml') then
  begin
    XMLDocFile:=TXMLDocument.Create(self);
    XMLDocFile.Active:=True;
    try
      XMLDocFile.LoadFromFile('config.xml');
      RootNode:=XMLDocFile.DocumentElement;
      StartDate:=StrToDate(RootNode.ChildNodes[2].Text);
    finally
      XMLDocFile:=nil;
    end;
  end;
end;运行的时候总是提示"动态链接库初始化例程失败"

解决方案 »

  1.   

    你的这段代码完全没有问题!我已经测试过了。你出现的这个问题主要是由于你自身的XML库本身的问题,也可能是安装的时候没有安装好XML库造成的。\Borland\Delphi7\Source\Xml目录主要包:XMLIntf,XMLDoc,xmldom,msxmldom,xercesxmldom,xdom,oxmldom等单元.楼主,你没有单步调试,看看是在什么地方出的错?
      

  2.   

    这段代码我记得以前好像可以正常运行,今天突然好像不行了。
    我重新装了msxml.msi好像还是运行时出错
      

  3.   

    ivwsooo挺好人哦 到处回答问题,而且还这么认真
      

  4.   

    今天又重新装了一遍Delphi 6 发现这个问题很奇怪.如果只装D6 不装update2.程序可以使用,装了update2就又有"动态链接库初始化例程失败的错误了,难道时Update2 的Bug?
      

  5.   

    我用D6+ SP2试你的程序没这问题.但你的代码有个内存泄漏.
        XMLDocFile:=TXMLDocument.Create(Self);
    应该改成
        XMLDocFile:=TXMLDocument.Create(nil);不然当XMLDocFile := nil时,对象不会释放.
      

  6.   

    今天我也测试了一下,环境是D6+update2+win2000
    还是一样没有问题。是不是你的D6升级包有问题?要不没有安装的时候可以运行,安装了倒不可以运行了。你下载一个试试看。
      

  7.   

    刚从网上脱下了一个Delphi 10 lite版的试了一试,可以顺利通过。用D6+update2+xp还是运行的时候总是提示"动态链接库初始化例程失败"。彻底放弃D6了,其实很不想放弃,但没办法!
      

  8.   

    "动态链接库初始化例程失败"这样的中文错误信息,在DELPHI错误信息里面是没有的.
    只能是MS的库返回的,
    楼主可以下载安装MSXML DOM, 或者安装IE补丁试试.
      

  9.   

    手动添加COM对象初始化.但这一般在DLL中处理XML会用(因为DELPHI宣称和COM是是无缝,但有时会出问题):  CoInitialize(Nil);  //初始化COM
      ...
      ...
      XMLDocFile:=nil;
      CoUninitialize;    //释放COM
    另外,最好用DOM(IXMLDOMDocument和IXMLDOMNode),这样你就可以用XPATH进行查询节点了.
      

  10.   

    不打算在测试了,不过感觉chenylin说的挺有道理的