<?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[Threadparameter ohen Pointer übergeben?]]></title><description><![CDATA[<p>Hallo,<br />
kann ich einen ThreadParameter ohne pointer übergeben, also ohne<br />
den ThreadParameter mit new zu initialisieren??</p>
<p>So hab ich gedacht:</p>
<pre><code class="language-cpp">// ThreadParam pThreadParam = new ThreadParam;// so ist jetzt, und es funktioniert so!
ThreadParam pThreadParam; // so möchte ich es haben!! 

CWinThread* pThread = AfxBeginThread(threadproc, pThreadParam, THREAD_PRIORITY_NORMAL);

if(NULL == pThread)
{
    AfxMessageBox(L&quot;Fehler bei blabla...&quot;);
    return 0;
}

// wenn ich jetzt die threadproc aufrufe ist der parameter leer!

UINT threadproc(LPVOID lParam)
{
    // pTheadParam ist leer!!!
    ThreadParam* pThreadParam = (ThreadParam*)lParam; 
....
....
</code></pre>
<p>wie kann ich das machen das ich einen Parameter ohne Pointer übergebe, wenn es überhaupt möglich ist??</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>lg<br />
pixel</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/149683/threadparameter-ohen-pointer-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Jul 2026 05:00:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/149683.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 Jun 2006 12:01:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Threadparameter ohen Pointer übergeben? on Thu, 08 Jun 2006 12:12:06 GMT]]></title><description><![CDATA[<p>Hallo,<br />
kann ich einen ThreadParameter ohne pointer übergeben, also ohne<br />
den ThreadParameter mit new zu initialisieren??</p>
<p>So hab ich gedacht:</p>
<pre><code class="language-cpp">// ThreadParam pThreadParam = new ThreadParam;// so ist jetzt, und es funktioniert so!
ThreadParam pThreadParam; // so möchte ich es haben!! 

CWinThread* pThread = AfxBeginThread(threadproc, pThreadParam, THREAD_PRIORITY_NORMAL);

if(NULL == pThread)
{
    AfxMessageBox(L&quot;Fehler bei blabla...&quot;);
    return 0;
}

// wenn ich jetzt die threadproc aufrufe ist der parameter leer!

UINT threadproc(LPVOID lParam)
{
    // pTheadParam ist leer!!!
    ThreadParam* pThreadParam = (ThreadParam*)lParam; 
....
....
</code></pre>
<p>wie kann ich das machen das ich einen Parameter ohne Pointer übergebe, wenn es überhaupt möglich ist??</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>lg<br />
pixel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1073806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1073806</guid><dc:creator><![CDATA[pixel]]></dc:creator><pubDate>Thu, 08 Jun 2006 12:12:06 GMT</pubDate></item><item><title><![CDATA[Reply to Threadparameter ohen Pointer übergeben? on Thu, 08 Jun 2006 12:17:09 GMT]]></title><description><![CDATA[<p>pixel schrieb:</p>
<blockquote>
<p>wie kann ich das machen das ich einen Parameter ohne Pointer übergebe, wenn es überhaupt möglich ist??</p>
</blockquote>
<p>hi,<br />
so ein threadparam kann ein beliebiger 32bit wert sein, z.b. ein pointer, ein wert (0 in deinem beispiel), dein geburtstag in sekunden ab dem 1.1.1970, deine initialen (mit punkten!) usw...usw...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1073820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1073820</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Thu, 08 Jun 2006 12:17:09 GMT</pubDate></item><item><title><![CDATA[Reply to Threadparameter ohen Pointer übergeben? on Thu, 08 Jun 2006 13:07:16 GMT]]></title><description><![CDATA[<p>Hallo net,<br />
in meinen Beitrg ist ein kleiner Fehler, ich hab nicht alles ganz richtig<br />
vollständig geschriben, der Parameter ist eine Struktur, und kein einzelner<br />
Wert, mit einzelnen werten hab ich keine Probleme gehabt!</p>
<p>nochmal:</p>
<pre><code class="language-cpp">// in .h
typedef struct CThreadParams{
	CMyDlg* pDlg;
	CString csFilePath;
	HANDLE m_hStopThread;
	HANDLE m_hWaitThread;
}ThreadParams,*PThreadParams;

// weiter wie vorher beschrieben:
// wenn 
/*
ThreadParam* pThreadParam = new ThreadParam;
pThreadParam-&gt;csFilePath = csNewFilePath;
pThreadParam-&gt;pDlg = this;
so funktioniert es!
*/
ThreadParam pThreadParam;
pThreadParam.csFilePath = csNewFilePath;
pThreadParam.pDlg = this;

CWinThread* pThread = AfxBeginThread(threadproc, pThreadParam, THREAD_PRIORITY_NORMAL);

if(NULL == pThread)
{
    AfxMessageBox(L&quot;Fehler bei blabla...&quot;);
    return 0;
}

// wenn ich jetzt die threadproc aufrufe ist der parameter leer!

UINT threadproc(LPVOID lParam)
{
    // pTheadParam ist leer, genau gesagt pThreadParam-&gt;csFilePath ist leer!!!
    ThreadParam* pThreadParam = (ThreadParam*)lParam;
....
....
</code></pre>
<p>grüsse<br />
pixel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1073870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1073870</guid><dc:creator><![CDATA[pixel]]></dc:creator><pubDate>Thu, 08 Jun 2006 13:07:16 GMT</pubDate></item><item><title><![CDATA[Reply to Threadparameter ohen Pointer übergeben? on Thu, 08 Jun 2006 13:16:17 GMT]]></title><description><![CDATA[<p>pixel schrieb:</p>
<blockquote>
<pre><code class="language-cpp">ThreadParam pThreadParam;
pThreadParam.csFilePath = csNewFilePath;
pThreadParam.pDlg = this;

CWinThread* pThread = AfxBeginThread(threadproc, &amp;pThreadParam, THREAD_PRIORITY_NORMAL);
</code></pre>
</blockquote>
<p>Du musst dem Thread die Adresse auf deine ThreadParam Instanz übergeben (siehe '&amp;' bei AfxBeginThread()).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1073873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1073873</guid><dc:creator><![CDATA[Chris++ 0]]></dc:creator><pubDate>Thu, 08 Jun 2006 13:16:17 GMT</pubDate></item><item><title><![CDATA[Reply to Threadparameter ohen Pointer übergeben? on Thu, 08 Jun 2006 13:40:02 GMT]]></title><description><![CDATA[<p>Der Übergabeparameter darf aber keine lokale Variable sein, da ansonsten der Wert schon wieder im Stack überschrieben sein könnte, wenn die Threadfunktion darauf zugreift (wenn die aufrufende Funktion danach einfach wieder beendet wird).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1073894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1073894</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Thu, 08 Jun 2006 13:40:02 GMT</pubDate></item><item><title><![CDATA[Reply to Threadparameter ohen Pointer übergeben? on Thu, 08 Jun 2006 13:55:36 GMT]]></title><description><![CDATA[<p>Hallo Chris,<br />
das hab ich auch schon probiert, leider steht dann in<br />
csNewFilePath nur ein Zeichen drin, und das kann ich auch nicht sagen was für eins!<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
irgend ein komisches Γ, vielleicht hab ich die konvertierung nicht richtig gemacht????</p>
<pre><code class="language-cpp">ThreadParam pParam = (ThreadParam&amp;) lParam;
</code></pre>
<p>lg<br />
pixel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1073904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1073904</guid><dc:creator><![CDATA[pixel]]></dc:creator><pubDate>Thu, 08 Jun 2006 13:55:36 GMT</pubDate></item><item><title><![CDATA[Reply to Threadparameter ohen Pointer übergeben? on Thu, 08 Jun 2006 14:59:37 GMT]]></title><description><![CDATA[<p>Sorry, hatte die Konvertierung nach LPVOID vergessen.</p>
<pre><code class="language-cpp">CWinThread* pThread = AfxBeginThread(threadproc, (LPVOID)(&amp;pThreadParam), THREAD_PRIORITY_NORMAL);
</code></pre>
<p>Vieleicht geht hier auch static_cast (hab aber gerade kein miniprogram zum testen dabei).</p>
<p>pixel schrieb:</p>
<blockquote>
<p>das hab ich auch schon probiert, leider steht dann in<br />
csNewFilePath nur ein Zeichen drin, und das kann ich auch nicht sagen was für eins!</p>
</blockquote>
<p>Ähm, da weis ich jetzt auch nicht woran das liegen könnte (ich tippe mal das es an &quot;ThreadParam pParam = (ThreadParam&amp;) lParam;&quot; liegen wird).</p>
<p>Im Thread müsstest du dann noch folgendes machen:</p>
<pre><code class="language-cpp">ThreadParam* pParam = (ThreadParam*) lParam;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1073950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1073950</guid><dc:creator><![CDATA[Chris++ 0]]></dc:creator><pubDate>Thu, 08 Jun 2006 14:59:37 GMT</pubDate></item><item><title><![CDATA[Reply to Threadparameter ohen Pointer übergeben? on Thu, 08 Jun 2006 15:15:26 GMT]]></title><description><![CDATA[<p>das funzt so nicht. was vorher kein pointer war, wird durch casting auch nicht zum pointer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1073969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1073969</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Thu, 08 Jun 2006 15:15:26 GMT</pubDate></item><item><title><![CDATA[Reply to Threadparameter ohen Pointer übergeben? on Fri, 09 Jun 2006 08:55:27 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>das funzt so nicht. was vorher kein pointer war, wird durch casting auch nicht zum pointer.</p>
</blockquote>
<p>Wenn du die Adresse der Struktur (&amp;pThreadParam) an den Thread übergibst, dann ist das doch ein Pointer. Musst den dann nur wieder in eine ThreadParam-Adresse zurück casten.</p>
<pre><code class="language-cpp">ThreadParam pThreadParam;
pThreadParam.csFilePath = csNewFilePath;
pThreadParam.pDlg = this; 

CWinThread* pThread = AfxBeginThread(threadproc, (LPVOID)(&amp;pThreadParam), THREAD_PRIORITY_NORMAL);

UINT threadproc(LPVOID lparam)
{
    ThreadParam* pParam = (ThreadParam*) lParam;
}
</code></pre>
<p>Edit: Beispielcode hinzugefügt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1074374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1074374</guid><dc:creator><![CDATA[Chris++ 0]]></dc:creator><pubDate>Fri, 09 Jun 2006 08:55:27 GMT</pubDate></item><item><title><![CDATA[Reply to Threadparameter ohen Pointer übergeben? on Sat, 10 Jun 2006 17:50:13 GMT]]></title><description><![CDATA[<p>siehe auch:<br />
<a href="http://www.se.fh-heilbronn.de/usefulstuff/VCPLUS6/kap18.htm" rel="nofollow">http://www.se.fh-heilbronn.de/usefulstuff/VCPLUS6/kap18.htm</a><br />
<a href="http://www.henkessoft.de/C++/MFC/mfc_einsteigerbuch_kapitel17.htm" rel="nofollow">http://www.henkessoft.de/C++/MFC/mfc_einsteigerbuch_kapitel17.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075244</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sat, 10 Jun 2006 17:50:13 GMT</pubDate></item></channel></rss>