![]() |
Coinitialize
Hallo,
mein Programm verabschiedet sich gerade immer mit der Fehlermeldung 'Coinitialize wurde nicht aufgerufen'. Nun habe ich bereits im Forum nachgelesen und herausgefunden, wo man diese Funktion aufrufen sollte, etc., der Fehler blieb leider der gleiche! Nun muss ich allerdings zugeben, dass ich keinen Schimmer habe, was Coinitialize macht und um mein Problem zu verstehen wäre es gut, wenn mir das jemand kurz und verständlich erklären könnte. Die Hilfe habe ich schon befragt, konnte damit aber nichts anfangen! |
Hallo,
das ist kompliziert. In der Win32 Referenz steht folgendes: Zitat:
diese Thema alles andere als mal eben schnell erklärt. Zu diesem Thema haben schon viele Leute dicke Bücher geschrieben. Die besten deutschsprachigen Bücher zu diesem Thema hat Andreas Kosch (COM/DCOM/COM+ mit Delphi) geschrieben. Schau mal unter ![]() |
Hallo. Vielleicht könnte man dir leichter helfen, wenn du mal den Code von deinem Programm postest. So aus dem Stehgreif is das nich einfach zu beantworten. Und da das ja bestimmt nicht öfter vorkommt, wird ja wohl irgendwas "faul" sein. :wink:
Man liest sich, Stanlay |
Hallo
und erstmal danke für Eure Antworten! Code kann ich Euch leider keinen schicken, da ich mittlerweile nicht mehr weiß, wo der Fehler aufgetreten ist. Mein Problem liegt ja schon drei Monate zurück und irgendwie habe ich den Fehler wohl behoben, aber fragt mich nicht wie! :roll: Die ursprüngliche Frage bleibt jedoch, ich hab nach wie vor nicht herausgefunden, um was es bei coinitalize genau geht, wenn also jemand was dazu weiß und dies der Nachwelt hinterlassen möchte, nur zu, mit mir habt ihr auf alle Fälle einen interessierten Leser ... |
Re: Coinitialize
Es ist wahrscheinlich nicht mehr besonders aktuell, aber ich bin auf das gleiche Problem gestossen und habe es wiefolgt gelöst:
In der USES-Klauses hinzugefügt: ActiveX Vor der Verwendung des Ole-Objektes: OleInitialize(nil); Beim Aufräumen: OleUninitialize; Viele Grüsse aus der Schweiz Bruno |
Re: Coinitialize
Anscheinend ist es noch komplexer, in der USES-Klauses hinzugefügt:
Code:
Vor der Verwendung des Ole-Objektes:
ActiveX
Code:
Beim Aufräumen:
OleInitialize(nil);
CoInitializeEx(nil,COINIT_MULTITHREADED);
Code:
Zumindest reime ich mir das für meine Excel-Automation so aus diversen Artikeln zusammen, auch dem Win32-Api-Zitat oben im Thread. Auch die Fehlermeldung sagt ja eindeutig, das CoInitialize nicht aufgerufen wurde; also sollte man es einfach mal aufrufen (und OleInitialize auch noch).
CoUninitialize;
OleUninitialize; L. |
Re: Coinitialize
Sorry, hab Mist geschrieben. Das OleInitialize(nil); ruft selber schon CoInitializeEx auf, so dass man das gar nicht braucht.
L. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz