AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Warum CoInitialize

Ein Thema von Sanchez · begonnen am 27. Jan 2004 · letzter Beitrag vom 10. Jan 2006
Antwort Antwort
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#1

Warum CoInitialize

  Alt 27. Jan 2004, 18:44
hallo,

Ich habe gerade eine Klasse geschrieben, die mir Daten aus einem XML holt bzw schreibt.

Bei
  xmlDoc := CoDOMDocument40.Create; hat er mit zuerst mit der Meldung
Code:
'Coinitialize wurde nicht aufgerufen'
abgebrochen.

Das hab ich jetzt mit
  OleInitialize(nil); im Konstruktor und
  OleUninitialize; im Destruktor der Klasse gelöst.

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
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Warum CoInitialize

  Alt 28. Jan 2004, 07:28
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.
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Warum CoInitialize

  Alt 10. Jan 2006, 14:06
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 ( hätt ich ja auch selber drauf kommen können)

aeno
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Warum CoInitialize

  Alt 10. Jan 2006, 14:24
Zitat von Bernhard Geyer:
...
CoInitialize benötigst Du deshalb um das COM-Subsystem zu initialisieren, welches du verwendest.
Initialisieren bedeutet: Jeder Thread muss unter COM ein eigenes Apartment anmelden. Das passiert mit dem Aufruf von CoInitialize.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:06 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