Warum CoInitialize
hallo,
Ich habe gerade eine Klasse geschrieben, die mir Daten aus einem XML holt bzw schreibt. Bei
Delphi-Quellcode:
hat er mit zuerst mit der Meldung
xmlDoc := CoDOMDocument40.Create;
Code:
abgebrochen.
'Coinitialize wurde nicht aufgerufen'
Das hab ich jetzt mit
Delphi-Quellcode:
im Konstruktor und
OleInitialize(nil);
Delphi-Quellcode:
im Destruktor der Klasse gelöst.
OleUninitialize;
Meine Frage dazu: Bei einem Programm das ich mal mit D6 pro geschrieben habe, war das nicht nötig. Warum brauch ich das mit D7 pro? grüße, daniel |
Re: Warum CoInitialize
Eigentlich nur wenn die dpr-Datei aus alten Programmen verwendet wird und nicht "vollständig" ist.
In der DPR-Datei sollte der Eintrag: Application.Initialize; vorhanden sein. Damit erledigt Delphi alles nötige (u. a. auch das CoInitialize). Es könnte bei deinem Projekt unter D6 der Fall sein das ein CoInitialize durch die uses-Anweisung einer entsprechenden Unit automatisch ausgeführt wurde (und dazu nicht Application.Initialize benötigt hat). Es stört nicht wenn mehrmals CoInitialize aufgefuren wird. Es sollte halt die gleiche Anzahl von CoUninitialize aufgerufen werden. CoInitialize benötigst Du deshalb um das COM-Subsystem zu initialisieren, welches du verwendest. |
Re: Warum CoInitialize
hi,
schreibe grad ein kleines konsolenprogramm, dass XML-dateien ausliest. dazu muss ich ja auch OleInitialize() aufrufen. doch in welcher unit sind die deklariert? :? ein druck auf F1 bringt mir ja leider die WinAPI-referenz, in der ja nicht die delphi-unit steht... edit: okay danke, hat sich erledigt. ein "suchen in dateien" hat gezeigt, dass die funktion in der ActiveX.pas deklariert ist (:oops: hätt ich ja auch selber drauf kommen können) aeno |
Re: Warum CoInitialize
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz