<?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[Problem mit COleDispatchDriver]]></title><description><![CDATA[<p>Ein COM-Server wird wie folgt eingebunden:</p>
<pre><code class="language-cpp">m_pTAngWin = new TAngWin ();  
do
{
  m_pTAngWin-&gt;CreateDispatch (&quot;AngWinCom.AppServer&quot;,&amp;e);  
  pDisp = m_pTAngWin-&gt;m_lpDispatch;
} while (!pDisp);
</code></pre>
<p>Das funktioniert auch alles erstmal ganz prima. Nach diversen Funktionsaufrufen wird jedoch permanent die Exception RPC_E_WRONG_THREAD ausgelöst. Im nächsten Moment geht es wieder.</p>
<p>Der COM-Server ist mit dem BuilderX (Single-Threaded) erstellt, der aufrufende Client (selbst ein Server mit Multi-Threaded) in VC6. Ein früherer Hinweis, das die Thread-Modelle nicht gemixt werden dürfen, erwies sich als nicht hilfreich. Auch wenn der COM-Server als Multi-Threaded kompiliert wird, treten dieselben Fehler auf.</p>
<p>Irgendwie nicht befriedigend <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> . Weiß jemand Rat?</p>
<p>Nachtrag: Wird der COM-Server mittels VB-Client wie folgt eingebunden</p>
<pre><code>Set comnukl = GetObject(, &quot;AngWInCom.AppServer&quot;)
  If Err.Number &lt;&gt; 0 Then
    Set comnukl = CreateObject(&quot;AngWInCom.AppServer&quot;)
  End If
</code></pre>
<p>funktionieren die Aufrufe einwandfrei.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/101696/problem-mit-coledispatchdriver</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 12:49:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/101696.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 18 Feb 2005 15:11:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit COleDispatchDriver on Fri, 18 Feb 2005 15:15:19 GMT]]></title><description><![CDATA[<p>Ein COM-Server wird wie folgt eingebunden:</p>
<pre><code class="language-cpp">m_pTAngWin = new TAngWin ();  
do
{
  m_pTAngWin-&gt;CreateDispatch (&quot;AngWinCom.AppServer&quot;,&amp;e);  
  pDisp = m_pTAngWin-&gt;m_lpDispatch;
} while (!pDisp);
</code></pre>
<p>Das funktioniert auch alles erstmal ganz prima. Nach diversen Funktionsaufrufen wird jedoch permanent die Exception RPC_E_WRONG_THREAD ausgelöst. Im nächsten Moment geht es wieder.</p>
<p>Der COM-Server ist mit dem BuilderX (Single-Threaded) erstellt, der aufrufende Client (selbst ein Server mit Multi-Threaded) in VC6. Ein früherer Hinweis, das die Thread-Modelle nicht gemixt werden dürfen, erwies sich als nicht hilfreich. Auch wenn der COM-Server als Multi-Threaded kompiliert wird, treten dieselben Fehler auf.</p>
<p>Irgendwie nicht befriedigend <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> . Weiß jemand Rat?</p>
<p>Nachtrag: Wird der COM-Server mittels VB-Client wie folgt eingebunden</p>
<pre><code>Set comnukl = GetObject(, &quot;AngWInCom.AppServer&quot;)
  If Err.Number &lt;&gt; 0 Then
    Set comnukl = CreateObject(&quot;AngWInCom.AppServer&quot;)
  End If
</code></pre>
<p>funktionieren die Aufrufe einwandfrei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/726580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/726580</guid><dc:creator><![CDATA[Manfred Schmidtke]]></dc:creator><pubDate>Fri, 18 Feb 2005 15:15:19 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit COleDispatchDriver on Wed, 23 Feb 2005 15:57:41 GMT]]></title><description><![CDATA[<p>Hat wirklich keiner eine Idee?</p>
<p>Zum Hintergrund: Der COM-Server wird innerhalb einer Client-/Server-Umgebung eingebunden, die widerum mittels CORBA kommuniziert. Dabei sendet der Client aufgrund der Benutzereingaben ein Kommando an den Server, welcher auf dieser Basis die entsprechenden COM-Aufrufe erzeugt und die Ergebnisse via CORBA an den Client zurückliefert.</p>
<p>Einzige Auffälligkeit: Schlägt der erste COM-Aufruf fehl, schlagen auch alle folgenden fehl. Funktioniert der erste, gehen auch alle folgenden. Ein Timing-Problem ist damit eigentlich auszuschließen.</p>
<p>Die fehlerhaften Aufrufe kommen nicht beim Server an, sondern der Funktionsaufruf führt zur Exception in der OLE32.DLL. Der Fehler tritt niemals nach Initialisierung des COM-Servers auf. Die ersten Funktionsaufrufe bei Programmstart funktionierten (bis jetzt) immer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/730703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/730703</guid><dc:creator><![CDATA[Manfred Schmidtke]]></dc:creator><pubDate>Wed, 23 Feb 2005 15:57:41 GMT</pubDate></item></channel></rss>