<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Allgemeine COM-Frage]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>hab mein dll-Problenm gelöst. So nun mal eine grundsätzliche Frage:</p>
<p>Wenn ich mit CoCreateInstance ein Objekt meiner COM-Klasse erstelle und dies als Member in meiner App habe, d.h es bleibt so lange bestehen wie die App, und dann nochmal CoCreateInstance aufrufe in einem Dialog oder so. Bekomm ich dann einen Pointer auf das schon erstellte Objekt oder wird ein neues erzeugt?<br />
Das ist wichtig für mich und ich habe bis jetzt noch keine Antwort gefunden.</p>
<p>Gruß,</p>
<p>Stalin</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/50683/allgemeine-com-frage</link><generator>RSS for Node</generator><lastBuildDate>Sun, 31 May 2026 08:15:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/50683.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 02 Oct 2003 08:33:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Allgemeine COM-Frage on Thu, 02 Oct 2003 08:33:03 GMT]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>hab mein dll-Problenm gelöst. So nun mal eine grundsätzliche Frage:</p>
<p>Wenn ich mit CoCreateInstance ein Objekt meiner COM-Klasse erstelle und dies als Member in meiner App habe, d.h es bleibt so lange bestehen wie die App, und dann nochmal CoCreateInstance aufrufe in einem Dialog oder so. Bekomm ich dann einen Pointer auf das schon erstellte Objekt oder wird ein neues erzeugt?<br />
Das ist wichtig für mich und ich habe bis jetzt noch keine Antwort gefunden.</p>
<p>Gruß,</p>
<p>Stalin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/364796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/364796</guid><dc:creator><![CDATA[Stalin]]></dc:creator><pubDate>Thu, 02 Oct 2003 08:33:03 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine COM-Frage on Thu, 02 Oct 2003 08:54:41 GMT]]></title><description><![CDATA[<p>Es hängt von der ClassFactory ab, aber normalerweise bekommst du bei jedem CoCreateInstance-Aufruf ein Zeiger auf ein neues Objekt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/364817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/364817</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Thu, 02 Oct 2003 08:54:41 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine COM-Frage on Thu, 02 Oct 2003 09:03:39 GMT]]></title><description><![CDATA[<p>Und wie kann ich es handeln das nur eins erstellt wird?<br />
Wie war das mit der Classfactory?<br />
Hab da keine Ahnung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/364825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/364825</guid><dc:creator><![CDATA[Stalin]]></dc:creator><pubDate>Thu, 02 Oct 2003 09:03:39 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine COM-Frage on Thu, 02 Oct 2003 09:18:12 GMT]]></title><description><![CDATA[<p>Stalin schrieb:</p>
<blockquote>
<p>Und wie kann ich es handeln das nur eins erstellt wird?</p>
</blockquote>
<p>Der einfach Weg: Nur einmal CoCreateInstance aufrufen, und den Zeiger über Smartpointer / AddRef / QueryInterface weitergeben. IMHO sollte man keinen Singleton erzeugen, nur weil man zu faul ist, einen vorhandenen Zeiger dahin zu bringen, wo er gebraucht wird.</p>
<p>Falls es wirklich einen Grund gibt: Schau dir mal <a href="http://msdn.microsoft.com/library/en-us/vclib/html/_atl_declare_classfactory_singleton.asp" rel="nofollow">DECLARE_CLASSFACTORY_SINGLETON</a> an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/364836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/364836</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Thu, 02 Oct 2003 09:18:12 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine COM-Frage on Thu, 02 Oct 2003 11:08:43 GMT]]></title><description><![CDATA[<p>Du solltest es nicht tun ... !</p>
<p>CoCreateInstance sollte immer ein neues Object zurueckliefern !!!</p>
<p>Com-Objecte sind BetriebssystemSpezifisch ... wie spezifisch soll dein Singelton sein ?<br />
ProzessSpezifisch, BetriebssystemSpezifisch ... Netzwerkspezifisch ???</p>
<p>Warum sollte von deiner COM-Klasse nur 1. Instanz existieren ? Uch dass solltest du DIr ueberlegen.</p>
<p>Wenn Du wirklich nen Singleton Brauchst, solltest das ned allein ueber die COM-Classe loesen.<br />
1. (eher schlechtere) Ansatzpunkt waere: CoCreate liefert dir nen Fehler zurueck, wenn schon ne Instanz existiert, nu weiss dein CLient, das er mit CoGetObject arbeiten sollte ...<br />
2. Schreib dir nen Handler ... der dir die CoCraete/CoGetClass Abrufe abnimmt .. und mit ner Get - Function nen Zeiger auf deine Singelton-Class Schnittstelle leifert.</p>
<p>Schlecht ist definitiv folgendes Scenario (in basic, der einfachheithalber):</p>
<pre><code class="language-cpp">set myVar1 = new IMyClass
set myVar2 = new IMyClass

myVar1.Color = vbred
myVar2.Color = vgreen

x = myVar1.Color
</code></pre>
<p>Ist X nun vbred oder vbgreen ?<br />
Bei einer nichtersichtlichen SingeltonImplementation wuerde der User zumindest staunen. Der User sollte wissen, das nen Object nen Singelton ist und es dementsprechend auch anders erzeugen muessen !!!</p>
<p>Ciao ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/364908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/364908</guid><dc:creator><![CDATA[RHBaum]]></dc:creator><pubDate>Thu, 02 Oct 2003 11:08:43 GMT</pubDate></item><item><title><![CDATA[Reply to Allgemeine COM-Frage on Thu, 02 Oct 2003 12:54:07 GMT]]></title><description><![CDATA[<p>Allgemein: <a href="http://www.henkessoft.de/mfc_einsteigerbuch_kapitel15.htm" rel="nofollow">http://www.henkessoft.de/mfc_einsteigerbuch_kapitel15.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/365007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/365007</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Thu, 02 Oct 2003 12:54:07 GMT</pubDate></item></channel></rss>