<?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[ThreadProc dynamisch]]></title><description><![CDATA[<p>jemand ne ahnung wie ich ner structur ne dynamische lpAddress, also Thread Funktion zuweise;</p>
<pre><code class="language-cli">zb.:
typedef struct tagTHREAD{
DWORD WINAPI MyThreadProc;
bool CreatemyThread;
} THREADPROC;

mit CreateThread(NULL,NULL,THREADPROC::MyThreadProc, etc...
funktioniert irgendwie nicht, jemand ne idee?
</code></pre>
<p>will dann zb:</p>
<pre><code class="language-cli">DWORD WINAPI THRAEDPROC::MyThreadProc(LPVOID LPARAM){

}

THREADPROC::CreateMyThread(){
CreateThread(NULL,NULL,THREADPROC::MyThreadProc, etc... 
}
</code></pre>
<p>und dass dann wie folgt definieren:</p>
<pre><code class="language-cli">THRADPROC myThread;

myThread::CreateThread(.........
</code></pre>
<p>nur hats irgendwie ein problem nit der definition</p>
<pre><code class="language-cli">DWORD WINAPI THRAEDPROC::MyThreadProc(LPVOID LPARAM){
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/257954/threadproc-dynamisch</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 15:52:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/257954.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 05 Jan 2010 09:00:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ThreadProc dynamisch on Tue, 05 Jan 2010 09:00:13 GMT]]></title><description><![CDATA[<p>jemand ne ahnung wie ich ner structur ne dynamische lpAddress, also Thread Funktion zuweise;</p>
<pre><code class="language-cli">zb.:
typedef struct tagTHREAD{
DWORD WINAPI MyThreadProc;
bool CreatemyThread;
} THREADPROC;

mit CreateThread(NULL,NULL,THREADPROC::MyThreadProc, etc...
funktioniert irgendwie nicht, jemand ne idee?
</code></pre>
<p>will dann zb:</p>
<pre><code class="language-cli">DWORD WINAPI THRAEDPROC::MyThreadProc(LPVOID LPARAM){

}

THREADPROC::CreateMyThread(){
CreateThread(NULL,NULL,THREADPROC::MyThreadProc, etc... 
}
</code></pre>
<p>und dass dann wie folgt definieren:</p>
<pre><code class="language-cli">THRADPROC myThread;

myThread::CreateThread(.........
</code></pre>
<p>nur hats irgendwie ein problem nit der definition</p>
<pre><code class="language-cli">DWORD WINAPI THRAEDPROC::MyThreadProc(LPVOID LPARAM){
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1832718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832718</guid><dc:creator><![CDATA[Threadproc]]></dc:creator><pubDate>Tue, 05 Jan 2010 09:00:13 GMT</pubDate></item><item><title><![CDATA[Reply to ThreadProc dynamisch on Tue, 05 Jan 2010 09:15:09 GMT]]></title><description><![CDATA[<p>Dein Pseudo Code ist ein riesen-durcheinander!<br />
Funktionsdekl. haben runde Klammern!</p>
<p>Ausserdem lässt man typedef struct blabla... in C++ weg. Das ist C- Style und überhaupt nicht nötig!</p>
<p>Was willst Du genau erreichen?<br />
Dein Thread in eine Klasse packen?</p>
<p>Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1832732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832732</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Tue, 05 Jan 2010 09:15:09 GMT</pubDate></item><item><title><![CDATA[Reply to ThreadProc dynamisch on Tue, 05 Jan 2010 09:16:01 GMT]]></title><description><![CDATA[<p>Wenn ich dich richtig verstehe, dann willst du da einen Memberfunktionszeiger übergeben. Das geht so nicht, weil ein solcher Zeiger noch ein Argument, also ein Objekt erwartet. Wenn du das Objekt angeben kannst, kannst du das z.B mit <a href="http://www.boost.org/doc/libs/1_41_0/libs/bind/bind.html" rel="nofollow">boost::bind</a> elegant lösen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1832733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832733</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 05 Jan 2010 09:16:01 GMT</pubDate></item><item><title><![CDATA[Reply to ThreadProc dynamisch on Tue, 05 Jan 2010 09:33:19 GMT]]></title><description><![CDATA[<p>ne andere möglichkeit als boost gibts nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1832746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832746</guid><dc:creator><![CDATA[punky]]></dc:creator><pubDate>Tue, 05 Jan 2010 09:33:19 GMT</pubDate></item><item><title><![CDATA[Reply to ThreadProc dynamisch on Tue, 05 Jan 2010 09:44:00 GMT]]></title><description><![CDATA[<p>Doch, doch. Die gibts zu Hauf. <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="😉"
    /><br />
Kannst ja auch z.B die Standardbilbliothek benutzen, welche dir <a href="http://www.cplusplus.com/reference/std/functional/bind1st/" rel="nofollow">bind1st</a> anbietet.<br />
Mit boost::bind ist das ganze halt einfach schöner. (Nicht ohne Grund wird es im näschten Standard ein äquivalent zu boost::bind geben, welches dann bind1st und bind2nd ablösen wird).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1832758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832758</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 05 Jan 2010 09:44:00 GMT</pubDate></item><item><title><![CDATA[Reply to ThreadProc dynamisch on Tue, 05 Jan 2010 10:48:25 GMT]]></title><description><![CDATA[<p>kapier das bind1st irgendwie nicht...<br />
es müsste also den MemberZeiger das argument lParam auf die Function ThraedProc binden?</p>
<pre><code>bind1st(&amp;THREADPROC::ThreadProc(),lParam));
</code></pre>
<p>oder wie ist das zu verstehen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1832805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832805</guid><dc:creator><![CDATA[punky@IE]]></dc:creator><pubDate>Tue, 05 Jan 2010 10:48:25 GMT</pubDate></item><item><title><![CDATA[Reply to ThreadProc dynamisch on Tue, 05 Jan 2010 11:25:55 GMT]]></title><description><![CDATA[<p>das problem ist irgendwie ich brauch eben für jeden Thread Der dynamisch erzeugt wird ne eigene Dynamische funktion.<br />
da jeder Timer , ja ich versuch nen angemessenen timer zu programmieren, in einem eigenen thread läuft damit der TIMER unabhängig vom restlichen programm läuft.</p>
<p>tjo tja das ists</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1832835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832835</guid><dc:creator><![CDATA[punky]]></dc:creator><pubDate>Tue, 05 Jan 2010 11:25:55 GMT</pubDate></item><item><title><![CDATA[Reply to ThreadProc dynamisch on Tue, 05 Jan 2010 13:08:20 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>CreateThread erwartet in lpStartAddress, eine quasi statische Funktion,<br />
nicht eine Klassen Funktion.</p>
<p>Den Prototype der Funktion gibt das SDK wie folgt an:</p>
<pre><code class="language-cpp">DWORD WINAPI ThreadProc(LPVOID lpParameter);
</code></pre>
<p>Wenn du tatsächlich eine Klassenfunktion starten willst,<br />
kannst du dir in lpParameter den this pointer übergeben:</p>
<p>Also irgendwie so etwas:</p>
<pre><code class="language-cpp">hndl = CreateThread(lpThreadAttributes, dwStackSize, my_thread_function, this,  dwCreationFlags, lpThreadId);
</code></pre>
<p>mit</p>
<pre><code class="language-cpp">DWORD WINAPI my_thread_function(LPVOID lpParameter // thread data)
{
   my_class* pMy_class = static_cast&lt;my_class*&gt;(lpParameter)

   pMy_class-&gt; ...

   return 0;
}
</code></pre>
<p>Das ist alles nicht schön, funktioniert aber.<br />
Ich hoffe das war einigermaßen verständlich.</p>
<p>Aber noch ein Hinweis:<br />
Es kann in Zusammenhang mit Threads und Klassen richtig Ärger geben,<br />
wenn die Klasse weg ist aber der Thread noch da ist.<br />
Das wird nicht einfacher durch Vererbung.</p>
<p>Gruß Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1832905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832905</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 05 Jan 2010 13:08:20 GMT</pubDate></item><item><title><![CDATA[Reply to ThreadProc dynamisch on Tue, 05 Jan 2010 15:49:30 GMT]]></title><description><![CDATA[<p>jo danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1833042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1833042</guid><dc:creator><![CDATA[punky]]></dc:creator><pubDate>Tue, 05 Jan 2010 15:49:30 GMT</pubDate></item><item><title><![CDATA[Reply to ThreadProc dynamisch on Tue, 05 Jan 2010 16:40:36 GMT]]></title><description><![CDATA[<p>Frank Erdorf schrieb:</p>
<blockquote>
<p>Das ist alles nicht schön, funktioniert aber.<br />
Ich hoffe das war einigermaßen verständlich.</p>
<p>Aber noch ein Hinweis:<br />
Es kann in Zusammenhang mit Threads und Klassen richtig Ärger geben,<br />
wenn die Klasse weg ist aber der Thread noch da ist.<br />
Das wird nicht einfacher durch Vererbung.</p>
<p>Gruß Frank</p>
</blockquote>
<p>ich hab die Handles der Threads eh im Timer gespeichert die können dann sicher geschlossen werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1833092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1833092</guid><dc:creator><![CDATA[punky]]></dc:creator><pubDate>Tue, 05 Jan 2010 16:40:36 GMT</pubDate></item></channel></rss>