Здравствуйте, SterhBy, Вы писали:
SB>Мастера, подскажите.
SB>Есть класс, создаваемый статически, в котором нужно использовать XML parser.
SB>Этот класс используется в отдельном потоке приложения. Это единственный поток, который порождается из основного и выполняет обработку данных.
Дружище, не пиши ты эти методы в конструкторе и деструкторе класса, они совсем к нему не относятся
Это просто плохой подход.
CoInitilaize нужно вызывать единожды для потока а не для класса
В Execute методе потока напиши:
procedure TPayrollParserThread.Execute;
begin
CoInitializeEx (nil, COINIT_MULTITHREADED);
{если будет падать напиши CoInitialize (nil)}
try
....
finally
CoUnitialize;
end;
end;
Я Делфист и незнаю как там в CBuilder релизаются интерфейсы. Вполне возможно что точно также. Если да то
x->Release()
в деструкторе вызовет креш. Потому что деструктор вызывает Release для своих членов неавно. Один будет явно лишним
Удачи!