读书人

DLL单元创建XML对象内存报错(D7),该

发布时间: 2012-02-17 17:50:42 作者: rapoo

DLL单元创建XML对象内存报错—7)
unit uImportCtrl;

interface
uses
XMLDoc, XMLIntf, Forms, SysUtils, ActiveX;

type
TDllImport = class
private

protected

public
XMLExamInfoAll: TXMLDocument;
XMLPatInfo : TXMLDocument;
XMLExamInfo : TXMLDocument;
XMLExamDetail : TXMLDocument;

constructor Create;
function FreeImportDll: Integer;
end;

var
CtrlDll: TDllImport;

implementation

constructor TDllImport.Create;
begin
CoInitialize(nil);
XMLExamInfoAll := TXMLDocument.Create(nil);
XMLExamInfoAll.Active := True;
XMLExamInfoAll.Version := '1.0';
XMLExamInfoAll.Encoding:= 'gbk';

XMLPatInfo := TXMLDocument.Create(nil);
XMLPatInfo.Active := True;
XMLPatInfo.Version := '1.0';
XMLPatInfo.Encoding:= 'gbk';

XMLExamInfo := TXMLDocument.Create(nil);
XMLExamInfo.Active := True;
XMLPatInfo.Version := '1.0';
XMLPatInfo.Encoding:= 'gbk';

XMLExamDetail := TXMLDocument.Create(nil);
XMLExamDetail.Active := True;
XMLExamDetail.Version := '1.0';
XMLExamDetail.Encoding:= 'gbk';
end;

function TDllImport.FreeImportDll: Integer;
begin
if Assigned(XMLExamInfoAll) then
begin
XMLExamInfoAll.Active := False;
FreeAndNil(XMLExamInfoAll);
end;

if Assigned(XMLPatInfo) then
begin
XMLPatInfo.Active := False;
FreeAndNil(XMLPatInfo);
end;

if Assigned(XMLExamInfo) then
begin
XMLExamInfo.Active := False;
FreeAndNil(XMLExamInfo);
end;

if Assigned(XMLExamDetail) then
begin
XMLExamDetail.Active := False;
FreeAndNil(XMLExamDetail);
end;
end;

end.

在执行构造函数XMLExamInfoAll := TXMLDocument.Create(nil);是出错,提示地址错误。大家帮忙看看问题出在哪里?

[解决办法]
XMLExamInfoAll: TXMLDocument;
把上面的修改为下面的定义试试看

XMLExamInfoAll: IXMLDocument;

读书人网 >.NET

热点推荐