<?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[List&amp;lt;boost any&amp;gt; Strings verschwinden bei Übergabe]]></title><description><![CDATA[<p>folgendes Problem...</p>
<p>Habe eine Liste<br />
folgenden Typs:</p>
<pre><code class="language-cpp">using boost::any_cast;
typedef std::list&lt;boost::any&gt; many;
</code></pre>
<p>aus einem Hauptprogramm rufe ich eine Funktion in einer .so File auf</p>
<pre><code class="language-cpp">boost::shared_ptr&lt;ModulInput&gt; modul( *((boost::shared_ptr&lt;ModulInput&gt;*)input) );
       values_from_input = modul-&gt;inputer(*LoadModul, values);
</code></pre>
<p>in der .so File ist der Typ definiert.. (siehe oben)<br />
und dann noch u.a. folgender Funktionscode:</p>
<pre><code class="language-cpp">class ModulI : public ModulInput
{
public:
        ModulI() {
		std::cout &lt;&lt; &quot;new&quot; &lt;&lt; std::endl;
	}

	virtual ~ModulI() {
		std::cout &lt;&lt; &quot;delete&quot; &lt;&lt; std::endl;
	}

	virtual many inputer(TModulK &amp; LoadModul, many &amp; values)
	  {

           std::string Filename;
	   std::string Parameter;

	   cout&lt;&lt; endl&lt;&lt;&quot;Hier steht der in TModulK* LoadModul übermittelte Modulname und der erste Parameter&quot;&lt;&lt;endl;

	   Filename = LoadModul.mod_name;
           cout&lt;&lt; &quot;Mod_Name: &quot; &lt;&lt; Filename&lt;&lt;endl;
           // Zugriff auf die Parameter ist etwas komisch, aber geht
	   // erst Punkt dann Pfeil
           Parameter = LoadModul.ParaHook-&gt;par_value;
           cout &lt;&lt; &quot;Parameter 1: &quot;&lt;&lt; Parameter&lt;&lt;endl&lt;&lt;endl;

	   // für diese Funktion muss die Header Datein outputfunc.h eingebunden werden
           // und beim compilieren die outputfunc.cpp angegeben werden
	   OutputParameter(LoadModul.ParaHook);

           cout &lt;&lt;endl&lt;&lt; &quot;IN INPUT MODUL ANGEKOMMEN!!!&quot; &lt;&lt; endl;

	    for (int a = 1; a&lt;=10; a++)
            {
             append_any(values,12345);
             append_any(values,11111);
             append_any(values,&quot;löschen&quot;);
             append_int(values,22222);
             append_any(values,&quot;als Char_ptr&quot;);
             append_nothing(values);  // nichts anfügen...
             append_string(values,&quot;ich bin String-Wert&quot;);
             append_int(values,54321);

            }

	    // Werte via Variable hinzufügen
            int wert;
	    wert = 9999999;
	    append_any(values,wert);

	   count_all(values);
           print_all(values);

	   return values;

	  }
};
extern &quot;C&quot; {boost::shared_ptr&lt;ModulInput&gt; inputer( new ModulI() ); }
</code></pre>
<p>als Ausgabe bei count_all(values) gibt er folgendes auf Konsole aus</p>
<p>IN INPUT MODUL ANGEKOMMEN!!!<br />
#int == 41<br />
#empty == 10<br />
#string == 10<br />
#const char * == 20</p>
<p>wie ihr seht gebe ich am Schluss</p>
<pre><code class="language-cpp">return values;
</code></pre>
<p>zurück in das Hauptprogramm...</p>
<p>in diesem wird das ganze in</p>
<pre><code class="language-cpp">values_from_input
</code></pre>
<p>gespeichert...</p>
<p>sobald ich nun die Work Funktion im Work Modul (neue .so File) aufrufe</p>
<pre><code class="language-cpp">values_from_work = wmodul-&gt;worker(*LoadModul, values_from_input);
</code></pre>
<p>und in der Funktion worker in der .so Datei (im Prinzip der selbe aufbau nur andere bezeichner was Funktionsname betrifft... dann wieder</p>
<pre><code class="language-cpp">count_all(values);
</code></pre>
<p>mache</p>
<p>gibt er auf Konsole folgendes aus:</p>
<p>In WORK MODUL ANGEKOMMEN!!!<br />
#int == 41<br />
#empty == 10<br />
#string == 0 // Wieso sind hier keine String Werte mehr<br />
#const char * == 20</p>
<p>die Frage ist nur...</p>
<p>wo zum Geier sind die String Werte hin??</p>
<p>kann es sein das es sich hier um das Problem handelt das man String Werte nicht einfach &quot;kopieren&quot; kann <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>weiss jemand nee Lösung wie ich die String Werte auch in der Work Funktion verfügbar habe</p>
<p>Wird das von list&lt;boost any&gt; nicht unterstützt??? <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="😮"
    /></p>
<p>bräuchte dringends eine Lösung!!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
<p>Merci UFO</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/186695/list-lt-boost-any-gt-strings-verschwinden-bei-übergabe</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 14:50:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/186695.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 11 Jul 2007 13:42:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to List&amp;lt;boost any&amp;gt; Strings verschwinden bei Übergabe on Wed, 11 Jul 2007 13:42:08 GMT]]></title><description><![CDATA[<p>folgendes Problem...</p>
<p>Habe eine Liste<br />
folgenden Typs:</p>
<pre><code class="language-cpp">using boost::any_cast;
typedef std::list&lt;boost::any&gt; many;
</code></pre>
<p>aus einem Hauptprogramm rufe ich eine Funktion in einer .so File auf</p>
<pre><code class="language-cpp">boost::shared_ptr&lt;ModulInput&gt; modul( *((boost::shared_ptr&lt;ModulInput&gt;*)input) );
       values_from_input = modul-&gt;inputer(*LoadModul, values);
</code></pre>
<p>in der .so File ist der Typ definiert.. (siehe oben)<br />
und dann noch u.a. folgender Funktionscode:</p>
<pre><code class="language-cpp">class ModulI : public ModulInput
{
public:
        ModulI() {
		std::cout &lt;&lt; &quot;new&quot; &lt;&lt; std::endl;
	}

	virtual ~ModulI() {
		std::cout &lt;&lt; &quot;delete&quot; &lt;&lt; std::endl;
	}

	virtual many inputer(TModulK &amp; LoadModul, many &amp; values)
	  {

           std::string Filename;
	   std::string Parameter;

	   cout&lt;&lt; endl&lt;&lt;&quot;Hier steht der in TModulK* LoadModul übermittelte Modulname und der erste Parameter&quot;&lt;&lt;endl;

	   Filename = LoadModul.mod_name;
           cout&lt;&lt; &quot;Mod_Name: &quot; &lt;&lt; Filename&lt;&lt;endl;
           // Zugriff auf die Parameter ist etwas komisch, aber geht
	   // erst Punkt dann Pfeil
           Parameter = LoadModul.ParaHook-&gt;par_value;
           cout &lt;&lt; &quot;Parameter 1: &quot;&lt;&lt; Parameter&lt;&lt;endl&lt;&lt;endl;

	   // für diese Funktion muss die Header Datein outputfunc.h eingebunden werden
           // und beim compilieren die outputfunc.cpp angegeben werden
	   OutputParameter(LoadModul.ParaHook);

           cout &lt;&lt;endl&lt;&lt; &quot;IN INPUT MODUL ANGEKOMMEN!!!&quot; &lt;&lt; endl;

	    for (int a = 1; a&lt;=10; a++)
            {
             append_any(values,12345);
             append_any(values,11111);
             append_any(values,&quot;löschen&quot;);
             append_int(values,22222);
             append_any(values,&quot;als Char_ptr&quot;);
             append_nothing(values);  // nichts anfügen...
             append_string(values,&quot;ich bin String-Wert&quot;);
             append_int(values,54321);

            }

	    // Werte via Variable hinzufügen
            int wert;
	    wert = 9999999;
	    append_any(values,wert);

	   count_all(values);
           print_all(values);

	   return values;

	  }
};
extern &quot;C&quot; {boost::shared_ptr&lt;ModulInput&gt; inputer( new ModulI() ); }
</code></pre>
<p>als Ausgabe bei count_all(values) gibt er folgendes auf Konsole aus</p>
<p>IN INPUT MODUL ANGEKOMMEN!!!<br />
#int == 41<br />
#empty == 10<br />
#string == 10<br />
#const char * == 20</p>
<p>wie ihr seht gebe ich am Schluss</p>
<pre><code class="language-cpp">return values;
</code></pre>
<p>zurück in das Hauptprogramm...</p>
<p>in diesem wird das ganze in</p>
<pre><code class="language-cpp">values_from_input
</code></pre>
<p>gespeichert...</p>
<p>sobald ich nun die Work Funktion im Work Modul (neue .so File) aufrufe</p>
<pre><code class="language-cpp">values_from_work = wmodul-&gt;worker(*LoadModul, values_from_input);
</code></pre>
<p>und in der Funktion worker in der .so Datei (im Prinzip der selbe aufbau nur andere bezeichner was Funktionsname betrifft... dann wieder</p>
<pre><code class="language-cpp">count_all(values);
</code></pre>
<p>mache</p>
<p>gibt er auf Konsole folgendes aus:</p>
<p>In WORK MODUL ANGEKOMMEN!!!<br />
#int == 41<br />
#empty == 10<br />
#string == 0 // Wieso sind hier keine String Werte mehr<br />
#const char * == 20</p>
<p>die Frage ist nur...</p>
<p>wo zum Geier sind die String Werte hin??</p>
<p>kann es sein das es sich hier um das Problem handelt das man String Werte nicht einfach &quot;kopieren&quot; kann <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>weiss jemand nee Lösung wie ich die String Werte auch in der Work Funktion verfügbar habe</p>
<p>Wird das von list&lt;boost any&gt; nicht unterstützt??? <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="😮"
    /></p>
<p>bräuchte dringends eine Lösung!!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
<p>Merci UFO</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1323132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1323132</guid><dc:creator><![CDATA[UFOSWORLD]]></dc:creator><pubDate>Wed, 11 Jul 2007 13:42:08 GMT</pubDate></item><item><title><![CDATA[Reply to List&amp;lt;boost any&amp;gt; Strings verschwinden bei Übergabe on Wed, 11 Jul 2007 13:50:11 GMT]]></title><description><![CDATA[<p>Warum zeigst du uns nicht einfach die Funktion die beim Verschwinden der Strings aufgerufen wird?</p>
<p>Und warum hast du so umständliche append-Funktionen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1323142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1323142</guid><dc:creator><![CDATA[lolz]]></dc:creator><pubDate>Wed, 11 Jul 2007 13:50:11 GMT</pubDate></item><item><title><![CDATA[Reply to List&amp;lt;boost any&amp;gt; Strings verschwinden bei Übergabe on Wed, 11 Jul 2007 14:00:57 GMT]]></title><description><![CDATA[<p>Zeig doch mal die count_all Funktion. Ich vermute, dass hier ein Problem beim type_info-Vergleich vorliegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1323155</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1323155</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 11 Jul 2007 14:00:57 GMT</pubDate></item><item><title><![CDATA[Reply to List&amp;lt;boost any&amp;gt; Strings verschwinden bei Übergabe on Sun, 15 Jul 2007 17:24:56 GMT]]></title><description><![CDATA[<p>Hier die Funktion im Main Programm in der die Libs geladen werden und die Funktionen aufgerufen werden</p>
<pre><code class="language-cpp">void LoadLibs(int queue_id)
{
  const char *filename;
  const char *funcname;
  //const char *dlsym_error;

  TModulK *LoadModul = NULL;
  TQueueK *LoadQueue = NULL;

  LoadQueue = SearchQueue(queue_id);

  // Input

  LoadModul = SearchModul(LoadQueue-&gt;queue_input);
  filename = LoadModul-&gt;mod_name.c_str();

  void* inputHand = dlopen(filename, RTLD_LAZY);  

  if (!inputHand)
     {
      cerr &lt;&lt; &quot;Cannot load library: &quot; &lt;&lt; dlerror() &lt;&lt; endl;
      return 1;
     }
    {

       funcname = LoadModul-&gt;func_name.c_str();

       cout &lt;&lt;&quot;name der Datei:&quot;&lt;&lt; filename &lt;&lt;endl;
       cout &lt;&lt; &quot;Name der Funktion: &quot;&lt;&lt; funcname&lt;&lt; endl;

       void * input = dlsym(inputHand,funcname);

       if(!input) {
         std::cerr &lt;&lt; &quot;error dlsym(): &quot; &lt;&lt; dlerror() &lt;&lt; std::endl;
         dlclose(input);
          return 1;     //wenn dieses Return 1 fehlt dann Speicherschutzverletzung
         }

       boost::shared_ptr&lt;ModulInput&gt; modul( *((boost::shared_ptr&lt;ModulInput&gt;*)input) );
       values_from_input = modul-&gt;inputer(*LoadModul, values);

       // return 1;  //sobald hier return 0 oder 1 geht er nicht mehr weiter
     }

     // Hier dlclose(inputHand); beendet funktion und er gibt das Hier1 gar nicht mehr aus...
     // wenn ich dlclose(inputHand); weglasse dann geht er weiter

     cout &lt;&lt; &quot;Hier1&quot;&lt;&lt;endl;

  // WORK   

  LoadModul = SearchModul(LoadQueue-&gt;queue_work);
       cout &lt;&lt; &quot;Hier1a&quot;&lt;&lt;endl;
  filename = LoadModul-&gt;mod_name.c_str();

            cout &lt;&lt; &quot;Hier2&quot;&lt;&lt;endl;

  void* workHand = dlopen(filename, RTLD_LAZY);

  if (!workHand)
     {
      cerr &lt;&lt; &quot;Cannot load library: &quot; &lt;&lt; dlerror() &lt;&lt; endl;
      return 1;
     }
     {

          cout &lt;&lt; &quot;Hier3&quot;&lt;&lt;endl;
       funcname = LoadModul-&gt;func_name.c_str();

       cout &lt;&lt;&quot;name der Datei:&quot;&lt;&lt; filename &lt;&lt;endl;
       cout &lt;&lt; &quot;Name der Funktion: &quot;&lt;&lt; funcname&lt;&lt; endl;

       void * work = dlsym(workHand,funcname);

       if(!work) {
         std::cerr &lt;&lt; &quot;error dlsym(): &quot; &lt;&lt; dlerror() &lt;&lt; std::endl;
         dlclose(workHand);
          return 1;     //wenn dieses Return 1 fehlt dann Speicherschutzverletzung
         }

       boost::shared_ptr&lt;ModulWork&gt; wmodul( *((boost::shared_ptr&lt;ModulWork&gt;*)work) );
       values_from_work = wmodul-&gt;worker(*LoadModul, values_from_input);

      // return 0;  
     }

         if (!workHand)
      { // Do nothing
      }
   else
      {
       dlclose(workHand);
       cout &lt;&lt; &quot;Work-Handle closed&quot;&lt;&lt; endl;
      }

       if (!inputHand)
      { // Do nothing
      }
   else
      {
       dlclose(inputHand);
       cout &lt;&lt; &quot;Input-Handle closed&quot;&lt;&lt; endl;
      }

   return  EXIT_SUCCESS;
}
</code></pre>
<p>dann noch die</p>
<p>count_all Funktion</p>
<pre><code class="language-cpp">void count_all(many &amp; values)
{
    std::cout &lt;&lt; &quot;#int          == &quot;
        &lt;&lt; std::count_if(values.begin(), values.end(), is_int) &lt;&lt; std::endl;
    std::cout &lt;&lt; &quot;#empty        == &quot;
        &lt;&lt; std::count_if(values.begin(), values.end(), is_empty) &lt;&lt; std::endl;
    std::cout &lt;&lt; &quot;#string       == &quot;
        &lt;&lt; std::count_if(values.begin(), values.end(), is_string) &lt;&lt; std::endl;

    std::cout &lt;&lt; &quot;#const char * == &quot;
        &lt;&lt; std::count_if(values.begin(), values.end(), is_char_ptr) &lt;&lt; std::endl;

    std::cout&lt;&lt;std::endl;
}
</code></pre>
<p>wobei diese direkt von hier stammt</p>
<p><a href="http://www.boost.org/doc/html/any/s02.html" rel="nofollow">http://www.boost.org/doc/html/any/s02.html</a></p>
<p>ach ja... wenn ich die print_all funktion beim zweiten mal (also in work aufrufe) dann zeugt er keine strings an....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326013</guid><dc:creator><![CDATA[UFOSWORLD]]></dc:creator><pubDate>Sun, 15 Jul 2007 17:24:56 GMT</pubDate></item><item><title><![CDATA[Reply to List&amp;lt;boost any&amp;gt; Strings verschwinden bei Übergabe on Sun, 15 Jul 2007 18:51:07 GMT]]></title><description><![CDATA[<p>Boost.Any und Shared Libraries funktionieren nur zusammen wenn du auf ein paar GCC-Flags achtest. Probier mal -rdynamic (beim Linken).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326057</guid><dc:creator><![CDATA[Mr. N]]></dc:creator><pubDate>Sun, 15 Jul 2007 18:51:07 GMT</pubDate></item><item><title><![CDATA[Reply to List&amp;lt;boost any&amp;gt; Strings verschwinden bei Übergabe on Mon, 16 Jul 2007 08:35:32 GMT]]></title><description><![CDATA[<p>Mr. N schrieb:</p>
<blockquote>
<p>Boost.Any und Shared Libraries funktionieren nur zusammen wenn du auf ein paar GCC-Flags achtest. Probier mal -rdynamic (beim Linken).</p>
</blockquote>
<p>mache ich bereits seit begin des Projektes...</p>
<p>sowohl bei dem compilieren der Shared Objekts als auch unter Kdevelop beim Main Programm verwende ich -rdynamic -shared</p>
<p>im KDevelop noch zusätzlich -ldl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326332</guid><dc:creator><![CDATA[UFOSWORLD]]></dc:creator><pubDate>Mon, 16 Jul 2007 08:35:32 GMT</pubDate></item><item><title><![CDATA[Reply to List&amp;lt;boost any&amp;gt; Strings verschwinden bei Übergabe on Mon, 16 Jul 2007 10:29:14 GMT]]></title><description><![CDATA[<p>UFOSWORLD schrieb:</p>
<blockquote>
<p>Mr. N schrieb:</p>
<blockquote>
<p>Boost.Any und Shared Libraries funktionieren nur zusammen wenn du auf ein paar GCC-Flags achtest. Probier mal -rdynamic (beim Linken).</p>
</blockquote>
<p>mache ich bereits seit begin des Projektes...</p>
<p>sowohl bei dem compilieren der Shared Objekts als auch unter Kdevelop beim Main Programm verwende ich -rdynamic -shared</p>
<p>im KDevelop noch zusätzlich -ldl</p>
</blockquote>
<p>Außerdem solltest du dlopen denke ich mit RTLD_GLOBAL aufrufen.</p>
<p>(Und dann gabs noch nen Trick an den ich mich nicht erinnere.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326423</guid><dc:creator><![CDATA[Mr. N]]></dc:creator><pubDate>Mon, 16 Jul 2007 10:29:14 GMT</pubDate></item><item><title><![CDATA[Reply to List&amp;lt;boost any&amp;gt; Strings verschwinden bei Übergabe on Mon, 16 Jul 2007 14:10:54 GMT]]></title><description><![CDATA[<p>Mr. N schrieb:</p>
<blockquote>
<p>UFOSWORLD schrieb:</p>
<blockquote>
<p>Mr. N schrieb:</p>
<blockquote>
<p>Boost.Any und Shared Libraries funktionieren nur zusammen wenn du auf ein paar GCC-Flags achtest. Probier mal -rdynamic (beim Linken).</p>
</blockquote>
<p>mache ich bereits seit begin des Projektes...</p>
<p>sowohl bei dem compilieren der Shared Objekts als auch unter Kdevelop beim Main Programm verwende ich -rdynamic -shared</p>
<p>im KDevelop noch zusätzlich -ldl</p>
</blockquote>
<p>Außerdem solltest du dlopen denke ich mit RTLD_GLOBAL aufrufen.</p>
<p>(Und dann gabs noch nen Trick an den ich mich nicht erinnere.)</p>
</blockquote>
<p>mhhh also das mit dem RTLD_GLOBAL funzt nicht...</p>
<p>nachdem ich das geändert habe motzt er beim ausführen nun rum, das er die .so File nicht mehr findet die in filename drin steht... obwohl der LD_LIBRARY_PATH gestetzt ist<br />
auch das kopieren ins Programmverzeichniss der .so files bringt keine Besserung</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326606</guid><dc:creator><![CDATA[UFOSWORLD]]></dc:creator><pubDate>Mon, 16 Jul 2007 14:10:54 GMT</pubDate></item><item><title><![CDATA[Reply to List&amp;lt;boost any&amp;gt; Strings verschwinden bei Übergabe on Mon, 16 Jul 2007 14:54:33 GMT]]></title><description><![CDATA[<p>UFOSWORLD schrieb:</p>
<blockquote>
<p>mhhh also das mit dem RTLD_GLOBAL funzt nicht...</p>
<p>nachdem ich das geändert habe motzt er beim ausführen nun rum, das er die .so File nicht mehr findet die in filename drin steht... obwohl der LD_LIBRARY_PATH gestetzt ist<br />
auch das kopieren ins Programmverzeichniss der .so files bringt keine Besserung</p>
</blockquote>
<p>Probier mal ob boost::unsafe_any_cast geht (das ist allerdings __böse__). Dazu brauchst du allerdings mindestens ein gepatchtes Boost 1.33.1. Die Version von Ubuntu Edgy Eft zB geht IIRC.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326645</guid><dc:creator><![CDATA[Mr. N]]></dc:creator><pubDate>Mon, 16 Jul 2007 14:54:33 GMT</pubDate></item><item><title><![CDATA[Reply to List&amp;lt;boost any&amp;gt; Strings verschwinden bei Übergabe on Tue, 17 Jul 2007 06:27:27 GMT]]></title><description><![CDATA[<p>also unsafe_an_cast kompiliert (Ver 1.34.0 am laufen) er durch, nur beim ausführen mit RTLD_GLOBAL bei dlopen kommt der selbe Fehler wie vorher... kann die .so File nicht finden...</p>
<p>ändere ich das wieder um auf RTLD_LAZY dann läuft er durch aber wieder mit dem selben Fehler, also Speicherschutzgfehler und fehlenden String Werten im Work Modul....</p>
<p>vielleicht handelt es sich ja doch um das alte Problem mit kopieren von Stringwerten... dachte zwar das in C++ jetzt das zuweisen von Strings funkioniert und erlaubt ist... aber man wird ja immer mal wieder Überrascht...</p>
<p>(siehe Vermutung am Ende erster Post in diesem Beitrag)</p>
<p>noch irgendwelche TIPS??? <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="😞"
    /> <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="😞"
    /> <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/1326923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326923</guid><dc:creator><![CDATA[UFOSWORLD]]></dc:creator><pubDate>Tue, 17 Jul 2007 06:27:27 GMT</pubDate></item><item><title><![CDATA[Reply to List&amp;lt;boost any&amp;gt; Strings verschwinden bei Übergabe on Tue, 17 Jul 2007 13:54:44 GMT]]></title><description><![CDATA[<p>UFOSWORLD schrieb:</p>
<blockquote>
<p>noch irgendwelche TIPS??? <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="😞"
    /> <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="😞"
    /> <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>
</blockquote>
<p>Mach mal ein lesbareres und kleineres Codebeispiel, das das gleiche Problem aufweist. Deinen Code da oben habe ich mir nämlich nicht wirklich durchgelesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1327272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327272</guid><dc:creator><![CDATA[Mr. N]]></dc:creator><pubDate>Tue, 17 Jul 2007 13:54:44 GMT</pubDate></item></channel></rss>