<?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[Probleme mit boost thread]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gerne in einer Anwendung boost thread verwenden, leider scheitert es im Moment daran das VS2005 folgenden fehler meldet:<br />
fatal error LNK1104: Datei &quot;libboost_thread-vc80-mt-gd-1_33_1.lib&quot; kann nicht geöffnet werden.</p>
<p>Als Include verwende ich #include &lt;boost/thread/thread.hpp&gt;</p>
<p>Selbiger fehler tritt auch mit der boost version 1.34 auf.</p>
<p>Ich habe die boost 1.33 mit dem Windows installer installiert, die Datei libboost_thread-vc80-mt-gd-1_33_1.lib liegt auch im Verzeichnis C:\Programme\boost\boost_1_33_1\lib .<br />
Als include Verzeichnis des projektes habe ich C:\Programme\boost\boost_1_33_1 angegeben.</p>
<p>Ein Inlcude einer anderen boost Lib z.b.<br />
#include &lt;boost/lambda/lambda.hpp&gt;<br />
funktioniert hingegen fehlerfrei.</p>
<p>Kann mir bei dem Problem jemand weiter helfen?</p>
<p>Mfg<br />
Piet</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/182177/probleme-mit-boost-thread</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 07:17:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/182177.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 May 2007 09:23:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit boost thread on Tue, 22 May 2007 09:23:51 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gerne in einer Anwendung boost thread verwenden, leider scheitert es im Moment daran das VS2005 folgenden fehler meldet:<br />
fatal error LNK1104: Datei &quot;libboost_thread-vc80-mt-gd-1_33_1.lib&quot; kann nicht geöffnet werden.</p>
<p>Als Include verwende ich #include &lt;boost/thread/thread.hpp&gt;</p>
<p>Selbiger fehler tritt auch mit der boost version 1.34 auf.</p>
<p>Ich habe die boost 1.33 mit dem Windows installer installiert, die Datei libboost_thread-vc80-mt-gd-1_33_1.lib liegt auch im Verzeichnis C:\Programme\boost\boost_1_33_1\lib .<br />
Als include Verzeichnis des projektes habe ich C:\Programme\boost\boost_1_33_1 angegeben.</p>
<p>Ein Inlcude einer anderen boost Lib z.b.<br />
#include &lt;boost/lambda/lambda.hpp&gt;<br />
funktioniert hingegen fehlerfrei.</p>
<p>Kann mir bei dem Problem jemand weiter helfen?</p>
<p>Mfg<br />
Piet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1289697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1289697</guid><dc:creator><![CDATA[Piet2007]]></dc:creator><pubDate>Tue, 22 May 2007 09:23:51 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit boost thread on Tue, 22 May 2007 09:30:14 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Du könntest die fehlende lib deinem Projekt hinzufügen oder dort bei den Projekteinstellungen den Pfad bekannt machen.<br />
Das lambda funktioniert ist ja normal, da wird keine lib benötigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1289702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1289702</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 22 May 2007 09:30:14 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit boost thread on Tue, 22 May 2007 09:34:04 GMT]]></title><description><![CDATA[<p>Danke, kaum macht mans richtig funktionierts auch.</p>
<p>Mfg<br />
Piet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1289706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1289706</guid><dc:creator><![CDATA[Piet2007]]></dc:creator><pubDate>Tue, 22 May 2007 09:34:04 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit boost thread on Thu, 24 May 2007 11:54:56 GMT]]></title><description><![CDATA[<p>ich versuche einen empfangs und einen sende thread aufzubauen, der sende thread soll kontinuierlich datenanfordern.</p>
<pre><code class="language-cpp">// starte empfangsthread
	boost::thread thrd_recv( &amp;class1.recv );

	// starte abrufthread
	boost::thread thrd_send( &amp;class2.send );
</code></pre>
<p>Leider meldet mit VS nur folgenden Fehler:<br />
error C2276: '&amp;': Ungültige Operation auf Ausdruck einer gebundenen Memberfunktion</p>
<p>Hat jemand vieleicht eine Lösung oder Erklärung warum es nicht funktioniert?</p>
<p>Mfg<br />
Piet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1291363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1291363</guid><dc:creator><![CDATA[Piet2007]]></dc:creator><pubDate>Thu, 24 May 2007 11:54:56 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit boost thread on Thu, 24 May 2007 11:55:54 GMT]]></title><description><![CDATA[<p>fehler im obigen code:</p>
<pre><code class="language-cpp">// starte empfangsthread
    boost::thread thrd_recv( &amp;class1.recv );

    // starte abrufthread
    boost::thread thrd_send( &amp;class1.send );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1291364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1291364</guid><dc:creator><![CDATA[Piet2007]]></dc:creator><pubDate>Thu, 24 May 2007 11:55:54 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit boost thread on Thu, 24 May 2007 12:38:56 GMT]]></title><description><![CDATA[<p>Der Konstruktor von boost::thread will eine freie Funktion (void fun(void)). Du übergibst aber eine Memberfunktion.<br />
Ich kenne mich da nicht so riesig aus und würde hier eine Wrapperfunktion um die Memberfunktion schreiben.<br />
Etwa so</p>
<pre><code class="language-cpp">void class1_recv_wrap(class1&amp; c)
{
   c.recv();
}

class1 c1;

boost::thread thrd_recv( boost::bind(class1_recv_wrap, c1) );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1291392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1291392</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 24 May 2007 12:38:56 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit boost thread on Thu, 24 May 2007 12:59:32 GMT]]></title><description><![CDATA[<p>Warum nimmst Du da noch einen Wrapper, wenn schon ein Funktor möglich ist?</p>
<pre><code class="language-cpp">boost::thread thrd_recv( boost::bind( &amp;class1::recv, &amp;c1 ) );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1291400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1291400</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 24 May 2007 12:59:32 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit boost thread on Thu, 24 May 2007 13:17:40 GMT]]></title><description><![CDATA[<p>Weil ich das so noch nicht kannte? <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="🙂"
    /><br />
Das sieht natürlich besser aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1291409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1291409</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 24 May 2007 13:17:40 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit boost thread on Fri, 25 May 2007 15:10:39 GMT]]></title><description><![CDATA[<p>Hallo, Danke für die Anworten,<br />
leider komme ich so</p>
<pre><code class="language-cpp">boost::thread thrd_recv( boost::bind( &amp;class1::recv, &amp;c1 ) );
</code></pre>
<p>nicht zu meinem Ziel da ich ja eine neue instanz meiner class1 bilde, ich hatte class1 in diesem fall schon als instanz gesehen.</p>
<p>Ich habe also:</p>
<pre><code class="language-cpp">class1 instanzVonClass1;

instanzVonClass1.Attribut1Setzen(&quot;...&quot;);
instanzVonClass1.Attribut2Setzen(&quot;...&quot;);

//
// Nach dem setzen Versuche ich also einen Thread zu starten der die Instanz
// mit den gesetzten werten verwenden kann.
//
boost::thread thrd_recv( boost::bind( &amp;instanzVonClass1.recv )  );
// Dies löst weiterhin den Fehler:
// '&amp;': Ungültige Operation auf Ausdruck einer gebundenen Memberfunktion 
// aus
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1292290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1292290</guid><dc:creator><![CDATA[Piet2007]]></dc:creator><pubDate>Fri, 25 May 2007 15:10:39 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit boost thread on Fri, 25 May 2007 15:34:59 GMT]]></title><description><![CDATA[<p>Piet2007 schrieb:</p>
<blockquote>
<p>leider komme ich so</p>
<pre><code class="language-cpp">boost::thread thrd_recv( boost::bind( &amp;class1::recv, &amp;c1 ) );
</code></pre>
<p>nicht zu meinem Ziel da ich ja eine neue instanz meiner class1 bilde, ich hatte class1 in diesem fall schon als instanz gesehen.</p>
</blockquote>
<p>Wo wird da eine Instanz erzeugt?</p>
<p>Du kannst statt c1 auch instanzVonClass1 nehmen - Analogieübung sozusagen <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="😉"
    /></p>
<p>BTW:<br />
&amp;class1::recv ist hier die Funktion vom Typ void(class1::*)() und &amp;c1 das Objekt welches der Funktion als this-Objekt übergeben werden soll. Da wird nirgendwo eine Instanz erzeugt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1292298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1292298</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 25 May 2007 15:34:59 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit boost thread on Fri, 25 May 2007 15:37:48 GMT]]></title><description><![CDATA[<p>Danke, mich haben die :: aus dem Konzept gebracht, bin noch nicht ganz c++ fest <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1292303</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1292303</guid><dc:creator><![CDATA[Piet2007]]></dc:creator><pubDate>Fri, 25 May 2007 15:37:48 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit boost thread on Sat, 02 Jun 2007 13:52:03 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein sehr ähnliches Problem, deswegen wollte ich mich gerade hier dran hängen.</p>
<p>Ich habe ein Spiel und hierzu gehört eine Strategie, diese Strategie läßt sich zur Laufzeit durch eine Factory ändern und nun möchte ich diese Strategie noch in einem Thread laufen lassen.</p>
<p>Ich habe eine Abstrakte Klasse Strategy und mehrere Klassen die dann von ihr erben. In der Factory erzeuge ich Instanz strategy auf z.B. Strategy4</p>
<p>Folgender Aufruf</p>
<pre><code class="language-cpp">boost::thread thread1( boost::bind( &amp;Strategy::Update, strategy ) );
</code></pre>
<p>läßt sich kompilieren - UND KLAPPT AUF EINMAL!!! <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="🙄"
    /></p>
<p>Na da ich jetzt schon fertiggetippt habe: vielen Dank an alle die in diesem Fred hier so toll erklärt haben wie mein Problem zu lösen war :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297153</guid><dc:creator><![CDATA[JoeBloggs]]></dc:creator><pubDate>Sat, 02 Jun 2007 13:52:03 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit boost thread on Tue, 05 Jun 2007 16:21:27 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe nochmal ein kleines Problem mit meinen Threads, vieleicht hat ja jemand von euch einen Tipp oder Buchhinweis für mich.</p>
<p>Also ich habe folgendes Problem:<br />
Thread A empfängt mit Funktionen der Klasse A Daten,<br />
- diese Daten sollen nun in einer Datenstruktur der Klasse C gespeichert werden<br />
Thread B soll kontinuierlich die Daten aus Klasse C auslesen und mittels Funktionen der Klasse B die aufbereiteten Daten weiter senden.</p>
<p>Ich bräuchte also nun einen festen Speicherbereich auf den ich aus beiden Threads zugreifen kann, hätte dort jemand einen Tipp für mich?</p>
<p>Mfg<br />
Piet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299446</guid><dc:creator><![CDATA[Piet2007]]></dc:creator><pubDate>Tue, 05 Jun 2007 16:21:27 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit boost thread on Tue, 05 Jun 2007 18:05:25 GMT]]></title><description><![CDATA[<p>Klingt irgendwie nach einem Fall für &quot;bounded queue&quot; für mich.<br />
Denk dir ne synchronisierte std::deque mit einer maximalen Länge und blockierenden &quot;push&quot; und &quot;pull&quot; Methoden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299502</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 05 Jun 2007 18:05:25 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit boost thread on Tue, 05 Jun 2007 20:20:56 GMT]]></title><description><![CDATA[<p>Hallo Hustbear,</p>
<p>das sieht schonmal gut aus, nur leider komme ich im moment nicht auf den sprung wie ich aus beiden klassen dann auf diese que zugreifen kann.</p>
<p>ich denke es liegt an einem fehler in meinem denk ansatz:</p>
<pre><code>#include &quot;klasse_daten_empfangen&quot;
#include &quot;klasse_daten_verarbeiten&quot;
#inlcude &quot;klasse_daten_que&quot;

void main(){

// Erzeuge Objekte:
klasse_daten_empfangen   instanz_von_klasse_daten_empfangen;
klasse_daten_verarbeiten instanz_von_klasse_daten_verarbeiten;

// Thread der die Daten empfängt und in die Que schreiben soll
boost::thread thrd_recv( boost::bind( &amp;klasse_daten_empfangen::empfangen, &amp;instanz_von_klasse_daten_empfangen ) );

// Thread der die Daten kontinuierlich der Que entnehmen soll
boost::thread thrd_work( boost::bind( &amp;klasse_daten_verarbeiten::verarbeiten, &amp;instanz_von_klasse_daten_verarbeiten) );
</code></pre>
<p>In meiner Klasse klasse_daten_verarbeiten ist die Que ja unbekannt wenn ich diese in der Main function definiere und initialisiere.<br />
Und an der Stelle hänge ich jetzt leider.</p>
<p>Mfg<br />
Piet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299597</guid><dc:creator><![CDATA[Piet2007]]></dc:creator><pubDate>Tue, 05 Jun 2007 20:20:56 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit boost thread on Tue, 05 Jun 2007 22:55:30 GMT]]></title><description><![CDATA[<p>Ich würde das &quot;Daten Schaufeln&quot; auslagern. D.h. du machst dir eine Funktion/Funktor die/der Daten aus Klasse &quot;klasse_daten_empfangen&quot; liest und nach &quot;klasse_daten_que&quot; schreibt, und du machst dir eine Funktion/Funktor die/der Daten aus &quot;klasse_daten_que&quot; liest und nach &quot;klasse_daten_verarbeiten&quot; schreibt.</p>
<p>Wie diese Funktionen/Funktoren ihre Parameter nehmen ist Geschmackssache, du kannst Referenzen übergeben oder boost::shared_ptr oder sogar einfach eine(n) Template Funktion/Funktor basteln die/der 2 Funktoren übergeben bekommt (einen zum Lesen, einen zum Schreiben).</p>
<p>Dann machst du einen &quot;quelle -&gt; queue&quot; Thread (der als Thread-Funktion eben die &quot;quelle -&gt; queue&quot; Funktion bekommt) und einen &quot;queue -&gt; ziel&quot; Thread (der natürlich die &quot;queue -&gt; ziel&quot; Funktion bekommt).</p>
<p>Fertig.<br />
Musst du nur noch eine Abbruchbedingung reinbasteln (damit die Threads nicht ewig laufen) und du bist fertig.</p>
<p>Wenn du mir etwas konkreter sagen kannst um was für Daten/Funktionen es da geht kann ich dir vielleicht etwas genauer schreiben bzw. anhand eines kleinen Beispiels zeigen wie das aussehen könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299663</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 05 Jun 2007 22:55:30 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit boost thread on Wed, 06 Jun 2007 09:52:27 GMT]]></title><description><![CDATA[<p>Hi, danke schonmal für deine Erklärungen.</p>
<p>Also ich bekomme z.b. auf der einen Seite Zahlenwerte die ich via Tcp Client von einem Tcp Server abrufe, ich sende einen gib daten befehl und bekomme darauf hin werte zurück. Diese Werte sollen nun von einem anderen Thread genommen werden um dann den Zahlen zugeordnete Texte auf einen Hypterterminal weiterzugeben, für diesen stelle ich meinem dritten Thread einen TCP Server bereit worauf das Hyperterminal dann verbindet und mit der klasse_daten_verarbeiten die Daten dann gesendet werden.</p>
<p>Ich hoffe ich habe mein Vorhaben halbwegs verständlich erklärt.</p>
<p>Mfg<br />
Piet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299876</guid><dc:creator><![CDATA[Piet2007]]></dc:creator><pubDate>Wed, 06 Jun 2007 09:52:27 GMT</pubDate></item></channel></rss>