<?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[Daten von laufendem Thread in Editfeld schreiben?]]></title><description><![CDATA[<p>hi leute,</p>
<p>ich stehe momentan vor einem problem:</p>
<p>mein programm ist so eine art server, der auf eine eingehende verbindung wartet. es wird von den clients eine verbindung hergestellt und ein max. 256 zeichen langer string übergeben. der server übergibt dann die empfangenen daten an ein anderes programm.</p>
<p>dies funktioniert soweit.</p>
<p>ich starte einen thread, der einen socket erstellt und auf die eingehende verbindung wartet. wenn eine verbindung angenommen wurde und die daten übergeben wurden, wird der thread nicht beendet, sondert wartet auf die nächste verbindung (while-schleife).</p>
<p>in meinem hauptfenster habe ich ein editfeld, in dem immer die daten der letzten verbindung angezeigt werden sollen.</p>
<p>ich weiß nur nicht, wie ich die daten von dem thread an das editfeld übergeben kann. wenn ich im thread &quot;SetWindowText (hIP, ss_ip.str())&quot; verwende, meldet er beim kompilieren &quot;C2065: 'hIP': nichtdeklarierter Bezeichner&quot;. &quot;hIP&quot; ist das editfeld.</p>
<p>vielleicht hat ja jemand einen tip, in der suche konnte ich leider nichts finden.</p>
<p>gruß</p>
<p>fire</p>
<p>ps: ich weiß nicht ob das hier der richtige bereich für das problem ist, wenn nicht bitte ich um verschiebung durch einen mod. danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/157079/daten-von-laufendem-thread-in-editfeld-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Jul 2026 19:44:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/157079.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 Aug 2006 06:52:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Daten von laufendem Thread in Editfeld schreiben? on Wed, 23 Aug 2006 06:53:58 GMT]]></title><description><![CDATA[<p>hi leute,</p>
<p>ich stehe momentan vor einem problem:</p>
<p>mein programm ist so eine art server, der auf eine eingehende verbindung wartet. es wird von den clients eine verbindung hergestellt und ein max. 256 zeichen langer string übergeben. der server übergibt dann die empfangenen daten an ein anderes programm.</p>
<p>dies funktioniert soweit.</p>
<p>ich starte einen thread, der einen socket erstellt und auf die eingehende verbindung wartet. wenn eine verbindung angenommen wurde und die daten übergeben wurden, wird der thread nicht beendet, sondert wartet auf die nächste verbindung (while-schleife).</p>
<p>in meinem hauptfenster habe ich ein editfeld, in dem immer die daten der letzten verbindung angezeigt werden sollen.</p>
<p>ich weiß nur nicht, wie ich die daten von dem thread an das editfeld übergeben kann. wenn ich im thread &quot;SetWindowText (hIP, ss_ip.str())&quot; verwende, meldet er beim kompilieren &quot;C2065: 'hIP': nichtdeklarierter Bezeichner&quot;. &quot;hIP&quot; ist das editfeld.</p>
<p>vielleicht hat ja jemand einen tip, in der suche konnte ich leider nichts finden.</p>
<p>gruß</p>
<p>fire</p>
<p>ps: ich weiß nicht ob das hier der richtige bereich für das problem ist, wenn nicht bitte ich um verschiebung durch einen mod. danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122535</guid><dc:creator><![CDATA[Firestarter81]]></dc:creator><pubDate>Wed, 23 Aug 2006 06:53:58 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von laufendem Thread in Editfeld schreiben? on Wed, 23 Aug 2006 10:04:52 GMT]]></title><description><![CDATA[<p>das hörtr sich so an, als würde in deinem threadproc hIP nicht definiert/deklariert/bekannt sein. Also: entweder hIP global machen (seeeehhhhhr schlechte Idee) oder versuchen, an das Handle des DIalogs zu kommen, das brauch man eigentlich überall und dann mit SetDlgItemText(hDlg, ID_EDITFELD, &quot;Text&quot;); Oder SetWindowText(GetDlgItem(hDlg, ID_EDITFELD), &quot;Text&quot;); dann füllen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122681</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Wed, 23 Aug 2006 10:04:52 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von laufendem Thread in Editfeld schreiben? on Wed, 23 Aug 2006 10:52:54 GMT]]></title><description><![CDATA[<p>Maxi schrieb:</p>
<blockquote>
<p>das hörtr sich so an, als würde in deinem threadproc hIP nicht definiert/deklariert/bekannt sein. Also: entweder hIP global machen (seeeehhhhhr schlechte Idee) oder versuchen, an das Handle des DIalogs zu kommen, das brauch man eigentlich überall und dann mit SetDlgItemText(hDlg, ID_EDITFELD, &quot;Text&quot;); Oder SetWindowText(GetDlgItem(hDlg, ID_EDITFELD), &quot;Text&quot;); dann füllen.</p>
</blockquote>
<p>hi maxi, danke für die antwort.</p>
<p>du hast recht, hIP ist in dem threadproc nicht bekannt, es wird unter wndproc beim erstellen des fensters (wm_create) wie folgt definiert:</p>
<pre><code>hIP = CreateWindowEx(WS_EX_CLIENTEDGE, &quot;edit&quot;, &quot;-&quot;, WS_CHILD | WS_VISIBLE | ES_READONLY, 250, 70, 150, 25, hWnd,	NULL, ((LPCREATESTRUCT) lParam) -&gt; hInstance, NULL);
</code></pre>
<p>deine beiden vorschläge hab ich schon probiert, aber es funktionierte auch nicht.</p>
<p>hatte es so getestet:</p>
<pre><code>SetDlgItemText(hWnd, hIP, &quot;test&quot;);
</code></pre>
<p>aber ich denk mal das ist falsch. dann kommt nämlich beim kompilieren die meldung &quot;C2065: 'hWnd': nichtdeklarierter Bezeichner&quot; - gleiches auch für &quot;hIP&quot;</p>
<p>aber das ist ja auch kein dialog, deshalb funktioniert setdlgitemtext oder getdlgitem auch nicht. oder sehe ich das falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122726</guid><dc:creator><![CDATA[Firestarter81]]></dc:creator><pubDate>Wed, 23 Aug 2006 10:52:54 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von laufendem Thread in Editfeld schreiben? on Wed, 23 Aug 2006 11:24:21 GMT]]></title><description><![CDATA[<p>Irgendwie scheint der Fall aber klar: Der Bezeichner hIP ist nicht deklariert. Hast Du irgendwo eine Zeile, die etwa so aussieht?</p>
<p>HWND hIP;</p>
<p>Falls nicht, solltest Du sie einfügen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122753</guid><dc:creator><![CDATA[Elektronix]]></dc:creator><pubDate>Wed, 23 Aug 2006 11:24:21 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von laufendem Thread in Editfeld schreiben? on Wed, 23 Aug 2006 11:30:19 GMT]]></title><description><![CDATA[<p>Du musst das HWND des Editfeldes an Deinen Thread übergeben, damit er drauf zugreifen kann...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122762</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Wed, 23 Aug 2006 11:30:19 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von laufendem Thread in Editfeld schreiben? on Wed, 23 Aug 2006 11:51:55 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>ich habe gleich in wndproc stehen:</p>
<pre><code>static HWND hIP;
</code></pre>
<p>wie übergebe ich das an den thread?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122791</guid><dc:creator><![CDATA[Firestarter81]]></dc:creator><pubDate>Wed, 23 Aug 2006 11:51:55 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von laufendem Thread in Editfeld schreiben? on Wed, 23 Aug 2006 11:57:40 GMT]]></title><description><![CDATA[<p>bei Createthread kannst du einen user-parameter mit angeben, da kannst du das handle mitgeben. Wenn du mehrere daten übergeben willst, empfiehlt es sich , eine struktur zu machen und diese Struktur als zeiger zu übeergeben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122795</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122795</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Wed, 23 Aug 2006 11:57:40 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von laufendem Thread in Editfeld schreiben? on Wed, 23 Aug 2006 12:26:20 GMT]]></title><description><![CDATA[<p>wie wäre die syntax dafür?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122821</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122821</guid><dc:creator><![CDATA[Firestarter81]]></dc:creator><pubDate>Wed, 23 Aug 2006 12:26:20 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von laufendem Thread in Editfeld schreiben? on Wed, 23 Aug 2006 13:41:59 GMT]]></title><description><![CDATA[<p>So zum Beispiel:</p>
<pre><code class="language-cpp">struct SDeineDaten
{
    HWND hWndDest;
    std::string strInfo;
    // usw. ...
};
</code></pre>
<p>Dann so (o.ä.) starten:</p>
<pre><code class="language-cpp">HANDLE       hThread;
DWORD        dwThreadID;
SDeineDaten  ddThreadData;

// ddThreadData-Struktur-Objekt initialisieren:
ddThreadData.hWndDest = ...;
// ...

hThread = CreateThread(NULL, 0L, ThreadProc, reinterpret_cast&lt;void*&gt;(&amp;ddThreadData), 0L, &amp;dwThreadID);
</code></pre>
<p>Der Parameter lpParam der Thread-Prozedur enthält dann eine Adresse auf deine Datenstruktur:</p>
<pre><code class="language-cpp">DWORD WINAPI ThreadProc(
  LPVOID lpParameter   // -&gt; Zeiger auf ddThreadData
);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1122883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122883</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 23 Aug 2006 13:41:59 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von laufendem Thread in Editfeld schreiben? on Wed, 23 Aug 2006 13:54:08 GMT]]></title><description><![CDATA[<p>ok danke!</p>
<p>ich versuch es mal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122890</guid><dc:creator><![CDATA[Firestarter81]]></dc:creator><pubDate>Wed, 23 Aug 2006 13:54:08 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von laufendem Thread in Editfeld schreiben? on Thu, 24 Aug 2006 08:17:37 GMT]]></title><description><![CDATA[<p>hallihallo nochmal,</p>
<p>ich habs grad versucht, aber ich muß zugeben ich bin nicht durchgestiegen, sorry!</p>
<p>liegt vermutlich daran, daß ich noch nicht soooviel programmiererfahrung habe und bisher mit strukturen nicht gearbeitet habe. windowsprogrammierung und multithreading ist auch noch sehr neu für mich...</p>
<p>ich hab hier zwar das buch von charles petzold, da ist das auch erklärt, aber leider nicht so wie ich es gebrauchen kann...</p>
<p>vielleicht kann mir ja noch jemand bissel genauer erklären, wie das funktioniert mit dem übergeben?</p>
<p>ich lege den thread mit dem makro &quot;_beginthread(VerbindungsThread, 0, NULL)&quot; an, kann ich das beibehalten?</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12048">@codefinder</a>: wofür steht das &quot;HWND hWndDest&quot; in deinem code?<br />
was macht das &quot;reinterpret_cast&lt;void*&gt;(&amp;ddThreadData)&quot;?</p>
<p>nichtsdestotrotz bin dich für die bisher erhaltene hilfe dankbar!</p>
<p>vielleicht kann ja einer mal irgendein funktionierendes beispiel posten wenn möglich, dann ist das für mich vielleicht auch leichter verständlich. danke schonmal!</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1123420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1123420</guid><dc:creator><![CDATA[Firestarter81]]></dc:creator><pubDate>Thu, 24 Aug 2006 08:17:37 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von laufendem Thread in Editfeld schreiben? on Thu, 24 Aug 2006 08:51:19 GMT]]></title><description><![CDATA[<p>Firestarter81 schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12048">@codefinder</a>: wofür steht das &quot;HWND hWndDest&quot; in deinem code?<br />
was macht das &quot;reinterpret_cast&lt;void*&gt;(&amp;ddThreadData)&quot;?</p>
</blockquote>
<p>hWndDest ist der Fensterhandle deines Edit-Cointrols. Der wird deinem Thread übergeben.<br />
Ein reinterpret_cast&lt;Typ&gt;(Ausdruck) ist eine explizite Typenumwandlung von Zeigern. Er entspricht dem C-Cast:</p>
<pre><code class="language-cpp">(void*)&amp;ddThreadData
</code></pre>
<p>Das ist äquvalent.</p>
<p>Firestarter81 schrieb:</p>
<blockquote>
<p>ich lege den thread mit dem makro &quot;_beginthread(VerbindungsThread, 0, NULL)&quot; an, kann ich das beibehalten?</p>
</blockquote>
<p>Also du kannst der CTR-Funktion _beginthread mehrere Parameter übergeben. Das ist hier wegen dem, Struct überflüssig...machs einfach so:</p>
<pre><code class="language-cpp">struct SDeineDaten
{
    HWND hWndEdit;
    // Weitere Daten...
};
// ...
HANDLE       hThread;
DWORD        dwThreadID;
SDeineDaten  ddThreadData;

// ddThreadData-Struktur-Objekt initialisieren:
ddThreadData.hWndEdit = ...;
// ...
// Thread starten:
hThread = CreateThread(NULL, 0L, VerbindungsThread, reinterpret_cast&lt;void*&gt;(&amp;ddThreadData), 0L, &amp;dwThreadID);

// Definition der Thread-Proc (VerbindungsThread):
DWORD WINAPI VerbindungsThread(PVOID lpParam)
{
  // zum Beispiel Text ermitteln:
  TCHAR szBuffer[500]; // nur statisch, da übersichtlicher
  GetWindowText(reinterpret_cast&lt;SDeineDaten*&gt;(lpParam)-&gt;hWndEdit, szBuffer, 
                sizeof(szBuffer) / sizeof(TCHAR));
  MessageBox(GetParent(reinterpret_cast&lt;SDeineDaten*&gt;(lpParam)-&gt;hWndEdit), szBuffer, TEXT(&quot;Info&quot;), 0);
  return (EXIT_SUCCESS);
}
</code></pre>
<p>Hier nochmal n Beispiel: <a href="http://msdn.microsoft.com/library/en-us/dllproc/base/creating_threads.asp" rel="nofollow">ClickMe</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1123451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1123451</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 24 Aug 2006 08:51:19 GMT</pubDate></item><item><title><![CDATA[Reply to Daten von laufendem Thread in Editfeld schreiben? on Thu, 24 Aug 2006 09:06:25 GMT]]></title><description><![CDATA[<p>Firestarter81 schrieb:</p>
<blockquote>
<p>ich lege den thread mit dem makro &quot;_beginthread(VerbindungsThread, 0, NULL)&quot; an, kann ich das beibehalten?</p>
</blockquote>
<p>kannst du. da wo die NULL steht packste deinen pointer oder das HWND rein.<br />
beispiel:</p>
<pre><code>void VerbindungsThread (void *p)
{
   printf (&quot;hallo: %s&quot;, p);
}

void main()
{
   _beginthread (VerbindungsThread, 0, &quot;&lt;hier irgendwas eintragen&gt;&quot;);
   Sleep (INFINITE);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1123471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1123471</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Thu, 24 Aug 2006 09:06:25 GMT</pubDate></item></channel></rss>