<?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[CoInitializeEx gibt mir einen Fehler zurück]]></title><description><![CDATA[<p>Hallo Community,</p>
<p>ich beschreibe euch mal mein Problem. Ich wollte eine kleine Wrapper-DLL schreiben. Als Basis dient mir das SDK eines Kameraherstellers. In der Dokumentation des Herstellers steht ich solle zuerst einen Interface-Pointer auf ein COM Objekt erstellen. Folgender Quellcode dient als Vorlage:</p>
<pre><code class="language-cpp">// Initialize COM library
HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
if(FAILED(hr))
{
    ...
}
else
{
hr = CoCreateInstance(CLSID_CCamSDK, NULL, CLSCTX_LOCAL_SERVER, IID_ICamSDK, (void**)&amp;InterfacePtr);
}
</code></pre>
<p>Ich habe den Obigen Quellcode in eine exportierten Funktion 'CreateInterfacePtr' gepackt und bereits der Aufruf von CoInitializeEx liefert mir: 0x80010106 Der Threadmodus kann nicht nach dem Einstellen geändert werden.</p>
<p>Ich bin nun mit meinem Latein am Ende und hoffe das Problem mit eurer Hilfe lösen zu können.</p>
<p>Cheers</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/293866/coinitializeex-gibt-mir-einen-fehler-zurück</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 02:59:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/293866.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Oct 2011 13:27:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CoInitializeEx gibt mir einen Fehler zurück on Wed, 12 Oct 2011 13:27:47 GMT]]></title><description><![CDATA[<p>Hallo Community,</p>
<p>ich beschreibe euch mal mein Problem. Ich wollte eine kleine Wrapper-DLL schreiben. Als Basis dient mir das SDK eines Kameraherstellers. In der Dokumentation des Herstellers steht ich solle zuerst einen Interface-Pointer auf ein COM Objekt erstellen. Folgender Quellcode dient als Vorlage:</p>
<pre><code class="language-cpp">// Initialize COM library
HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
if(FAILED(hr))
{
    ...
}
else
{
hr = CoCreateInstance(CLSID_CCamSDK, NULL, CLSCTX_LOCAL_SERVER, IID_ICamSDK, (void**)&amp;InterfacePtr);
}
</code></pre>
<p>Ich habe den Obigen Quellcode in eine exportierten Funktion 'CreateInterfacePtr' gepackt und bereits der Aufruf von CoInitializeEx liefert mir: 0x80010106 Der Threadmodus kann nicht nach dem Einstellen geändert werden.</p>
<p>Ich bin nun mit meinem Latein am Ende und hoffe das Problem mit eurer Hilfe lösen zu können.</p>
<p>Cheers</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2130482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2130482</guid><dc:creator><![CDATA[abrissbirne]]></dc:creator><pubDate>Wed, 12 Oct 2011 13:27:47 GMT</pubDate></item><item><title><![CDATA[Reply to CoInitializeEx gibt mir einen Fehler zurück on Wed, 12 Oct 2011 14:59:00 GMT]]></title><description><![CDATA[<p>Na vermutlich hast du CoInitializeEx() in dem Thread schon irgendwo mal aufgerufen (vermutlich implizit)...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2130549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2130549</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Wed, 12 Oct 2011 14:59:00 GMT</pubDate></item><item><title><![CDATA[Reply to CoInitializeEx gibt mir einen Fehler zurück on Thu, 13 Oct 2011 06:03:22 GMT]]></title><description><![CDATA[<p>Überlege Dir dreimal wo wie Du COM initialisierst. Du musst ja auch wieder CoUninitialize aufrufen, wenn Du &quot;fertig&quot; bist.</p>
<p>Meistens wird kein Multithreaded Appartment verwendet, brauchst Du das wirklich, können das Deine Klassen? In den meisten Fällen wird ein STA verwendet.</p>
<p>BTW: Das ist kein C++ Thema, das gehört nach WinAPI!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2130781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2130781</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 13 Oct 2011 06:03:22 GMT</pubDate></item><item><title><![CDATA[Reply to CoInitializeEx gibt mir einen Fehler zurück on Thu, 13 Oct 2011 06:27:38 GMT]]></title><description><![CDATA[<p>dot schrieb:</p>
<blockquote>
<p>Na vermutlich hast du CoInitializeEx() in dem Thread schon irgendwo mal aufgerufen (vermutlich implizit)...</p>
</blockquote>
<p>Ich selbst rufe diesen Code in der ersten Quellcodezeile auf. Von daher ist es (von meiner Seite) der erste Aufruf.</p>
<p>Martin Richter schrieb:</p>
<blockquote>
<p>Überlege Dir dreimal wo wie Du COM initialisierst. Du musst ja auch wieder CoUninitialize aufrufen, wenn Du &quot;fertig&quot; bist.</p>
<p>Meistens wird kein Multithreaded Appartment verwendet, brauchst Du das wirklich, können das Deine Klassen? In den meisten Fällen wird ein STA verwendet.</p>
</blockquote>
<p>Zumindest ist der Beispielcode so ausgelegt.</p>
<p>Martin Richter schrieb:</p>
<blockquote>
<p>BTW: Das ist kein C++ Thema, das gehört nach WinAPI!</p>
</blockquote>
<p>Sorry, schon wieder falsch. Bin eben kein &quot;gelernter&quot; Programmierer <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2130787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2130787</guid><dc:creator><![CDATA[abrissbirne]]></dc:creator><pubDate>Thu, 13 Oct 2011 06:27:38 GMT</pubDate></item><item><title><![CDATA[Reply to CoInitializeEx gibt mir einen Fehler zurück on Thu, 13 Oct 2011 07:46:11 GMT]]></title><description><![CDATA[<p>Du hast eine DLL!<br />
Von daher hat dieser Aufruf eigentlich nichts in Deinem Code zu suchen, oder weißt Du aus welchem Thread Dein Code in der DLL aufgerufen wird oder was die Applikation in der Deine DLL geladen wurde schon getan hat (Eben zum Beispiel ein Aufruf von CoInitializeEx oder OleInitialize?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2130830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2130830</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 13 Oct 2011 07:46:11 GMT</pubDate></item><item><title><![CDATA[Reply to CoInitializeEx gibt mir einen Fehler zurück on Fri, 14 Oct 2011 06:30:15 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Du hast eine DLL!<br />
Von daher hat dieser Aufruf eigentlich nichts in Deinem Code zu suchen, oder weißt Du aus welchem Thread Dein Code in der DLL aufgerufen wird oder was die Applikation in der Deine DLL geladen wurde schon getan hat (Eben zum Beispiel ein Aufruf von CoInitializeEx oder OleInitialize?</p>
</blockquote>
<p>Du hast recht. Hab mal etwas weiter probiert und</p>
<pre><code class="language-cpp">CoCreateInstance(CLSID_CCamSDK, NULL, CLSCTX_LOCAL_SERVER, IID_ICamSDK, (void**)&amp;InterfacePtr);
</code></pre>
<p>reicht aus um mit der SDK arbeiten zu können.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2131220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2131220</guid><dc:creator><![CDATA[abrissbirne]]></dc:creator><pubDate>Fri, 14 Oct 2011 06:30:15 GMT</pubDate></item></channel></rss>