TXMLDocument tworzony dynamicznie

Odpowiedz Nowy wątek
2011-08-10 15:48
0

Witam, potrzebuję przetworzyć dokument XML w drugim wątku. W tym celu dynamicznie tworzę TXMLDocument.

procedure TWatek.XML;
var
 responseXML:TXMLDocument ;
 
begin
 responseXML:=TXMLDocument.Create(nil); 
 responseXML.LoadFromFile(localfile); //localfile - string ze ścieżką do pliku.
// i tu dalsze instrukcje które się nie wykonają(...)

Procedura wywala się przy ładowaniu pliku. Miał ktoś może podobny problem? Niestety nie mam pomysłu czego tu brakuje, proszę więc o wskazówki ;)

edytowany 1x, ostatnio: asamor, 2011-08-10 15:50
"Procedura wywala się przy ładowaniu pliku." - po prostu nagle wyłącza się komputer czy możesz ŁASKAWIE podać komunikat błędu który pewnie mówi o co chodzi? Naucz się używać debuggera! - payl 2011-08-10 15:59

Pozostało 580 znaków

2011-08-10 16:26
0

Wybacz... ;)
"Project xxx.exe raised exception class EOleSysError with message 'Funkcja CoInitialize nie została wywołana'.".

Pozostało 580 znaków

2011-08-10 17:08
2

i oczywiście to Funkcja CoInitialize nie została wywołana nic ci nie mówi.....


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2011-08-11 14:42
0

W aplikacjach okienkowych nie trzeba wołać CoInitialize(). W ServiceApp trzeba ręcznie to robić.
To powinno załatać problem:

uses
  XMLDoc,
  XMLIntf,
 
FXML: IXMLDocument;
  FXML := NewXMLDocument;
  FXML := nil;
edytowany 1x, ostatnio: maciejmt, 2011-08-11 14:54
mylisz się - coinitialize jest wywoływana w module comobj. Jeśli ktoś go wywali z uses to kupa. BTW xmldoc ani xmlintf nie sięgają do comobj... - Misiekd 2011-08-11 14:51
dzięki za poprawę - aczkolwiek w ServiceApp pomimo dodania ComObj, i tak trzeba wywołać CoInitialize() - więc może stąd mój błędny wniosek :> - maciejmt 2011-08-11 14:53

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0