[ FreeInHell @ 07.12.2006. 13:23 ] @
E ovako, treba da napravim Server koji parsuje RSS fajlove i klijentima vraca vesti. Program radim u Turbo Delphi-ju i koristim Indy TCP Server. Problem nastaje kada pokusam da parsujem dovuceni XML fajl preko komponente TXMLDocument. Da pojasnim, problem se iskljucivo javlja u metodi Indy TCP Servera OnExecute. Ovako van te metode, nemam problema, sve radi savrseno. Ali kada pokusam da parsujem u toj metodi javlja gresku: "CoInitialize has not been called". Posto je to Server, sve se radi preko niti, tako da je i taj event vezan za nit konekcije sa klijentom. Kako da ovo resim??? Pomagajte.
[ morlic @ 07.12.2006. 13:57 ] @
U Execute metod niti stavi ovako.

Code:

begin
  CoInitialize;
  try
    // Ovde stavi ono sto si do sada koristio...
  finally
    CoUnInitialize;
  end;
end;


Razlog za ovako ponasanje je to sto se automatska inicijalizacija COM-a vrsi samo za glavnu nit, dok za ostale koje pravis moras sam to da uradis. A bez inicijalizacije nema ni koriscenja :)
[ FreeInHell @ 07.12.2006. 14:24 ] @
Hvala, vec sam razmisljao o nekim drugim ekstremnim koracima :-).

To radi samo sto mora:
CoInitialize(nil); i da se doda u uses listu: ActiveX. Hvala jos jednom, pozdrav!

[Ovu poruku je menjao FreeInHell dana 07.12.2006. u 16:12 GMT+1]