<?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[Multithreading und Wrapper-Klasssen]]></title><description><![CDATA[<p>Hi,</p>
<p>vielleicht könnt Ihr mir helfen, folgendes zu begreifen.</p>
<p>Ich habe ein Objekt aus einer OCX-Bibliothek, das mittels Wrapper Klasse (class _myObject : public COleDispatchDriver) eingebunden ist. Auch wenn &quot;OCX&quot; das nahe legt ist das Objekt nicht visuell (kein ActiveX).</p>
<p>Ich kann es in einer Funktion wunderbar benutzen, außer ich rufe die Funktion aus einem Thread auf.</p>
<p>Also, soetwas funktioniert:</p>
<pre><code class="language-cpp">void TestDlg::DoIt()
{
   _myObject m_obj;

   m_obj.CreateDispatch(&quot;xxxx.xxxx&quot;);

   m_obj.ObjMethod(xxx);
}

void TestDlg::OnButton()
{
   DoIt();
}
</code></pre>
<p>Aber soetwas funktioniert nicht:</p>
<pre><code class="language-cpp">static UINT MyThread(LPVOID p);

UINT TestDlg::MyThread(LPVOID p)
{
   TestDlg * app=(TestDlg *) p;

   app-&gt;DoIt();

   return 0;
}

void TestDlg::DoIt()
{
   _myObject m_obj;

   m_obj.CreateDispatch(&quot;xxxx.xxxx&quot;);

   m_obj.ObjMethod(xxx);
}

void TestDlg::OnButton()
{
   AfxBeginThread(MyThread, this);
}
</code></pre>
<p>Kann mir das jemand erklären (mir fehlt offensichtlich grundlegendes Verständnis) oder sogar eine Lösung anbieten?</p>
<p>Danke im Voraus...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/192276/multithreading-und-wrapper-klasssen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Apr 2026 23:37:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192276.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Sep 2007 13:43:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Multithreading und Wrapper-Klasssen on Wed, 12 Sep 2007 13:43:33 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>vielleicht könnt Ihr mir helfen, folgendes zu begreifen.</p>
<p>Ich habe ein Objekt aus einer OCX-Bibliothek, das mittels Wrapper Klasse (class _myObject : public COleDispatchDriver) eingebunden ist. Auch wenn &quot;OCX&quot; das nahe legt ist das Objekt nicht visuell (kein ActiveX).</p>
<p>Ich kann es in einer Funktion wunderbar benutzen, außer ich rufe die Funktion aus einem Thread auf.</p>
<p>Also, soetwas funktioniert:</p>
<pre><code class="language-cpp">void TestDlg::DoIt()
{
   _myObject m_obj;

   m_obj.CreateDispatch(&quot;xxxx.xxxx&quot;);

   m_obj.ObjMethod(xxx);
}

void TestDlg::OnButton()
{
   DoIt();
}
</code></pre>
<p>Aber soetwas funktioniert nicht:</p>
<pre><code class="language-cpp">static UINT MyThread(LPVOID p);

UINT TestDlg::MyThread(LPVOID p)
{
   TestDlg * app=(TestDlg *) p;

   app-&gt;DoIt();

   return 0;
}

void TestDlg::DoIt()
{
   _myObject m_obj;

   m_obj.CreateDispatch(&quot;xxxx.xxxx&quot;);

   m_obj.ObjMethod(xxx);
}

void TestDlg::OnButton()
{
   AfxBeginThread(MyThread, this);
}
</code></pre>
<p>Kann mir das jemand erklären (mir fehlt offensichtlich grundlegendes Verständnis) oder sogar eine Lösung anbieten?</p>
<p>Danke im Voraus...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1364030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1364030</guid><dc:creator><![CDATA[Ky]]></dc:creator><pubDate>Wed, 12 Sep 2007 13:43:33 GMT</pubDate></item></channel></rss>