Вобщем спасибо всем то дал ценные указания насчет работы с указателями.
У меня вот непонятки с XML. Начал недавно осваивать. Почему-то если вызвать xml.documentElement, то при завершении работы программы появляется ошибка нарушения доступа. Это все, если вызвать CoUninitialize. Но блин получается я же должен закрыть COM и освободить ресурсы. В чем ошибка?
Код: var
hr : HRESULT;
xml : IXMLDOMDocument;
node : IXMLDOMNode;
child : IXMLDOMNodeList;
bRet : Boolean;
iCount : Integer;
IdItem : Integer;
pszData: WideString;
pszText: WideString;
begin
hr := CoInitialize(nil);
if (hr = S_OK) then
try
hr := CoCreateInstance(CLASS_DOMDocument, nil, CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER, IID_IXMLDOMDocument, xml);
if (hr = S_OK) then
try
xml.async := FALSE;
bRet := xml.load('file.xml');
if bRet then
begin
node := xml.documentElement;
{iCount := node.childNodes.length;
for IdItem := 0 to (iCount - 1) do
begin
pszText := pszText + FormatW('Index = %d; ', [IdItem]);
child := node.childNodes.item[IdItem].SelectNodes('type');
pszData := child.item[0].text;
pszText := pszText + FormatW('type = %s; ', [pszData]);
child := node.childNodes.item[IdItem].SelectNodes('name');
pszData := child.item[0].text;
pszText := pszText + FormatW('name = %s; ', [pszData]);
pszText := pszText + sLineBreak;
end;
MessageBoxW(0, LPWSTR(pszText), nil, MB_OK);}
end;
finally
xml := nil;
end;
finally
CoUninitialize;
end;
end.