<?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[Plattformunabhängige C++ Bibliotheken]]></title><description><![CDATA[<p>Hi,</p>
<p>ist es möglich eine Bibliothek in C++ für alle Plattformen (Linux, andere unix-artige, Window) zu schreiben, ohne die komplette Bibliothek mehrmals zu implementieren?</p>
<p>So wie ich das momentan sehe:<br />
Shared Libraries (.so) laufen nur unter Unix etc.<br />
DLL laufen nur unter Windows.</p>
<p>Muss ich also immer zweigleisig fahren? Ist es schwer, eine Shared Libary in eine DLL zu konvertieren?</p>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/180470/plattformunabhängige-c-bibliotheken</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Jul 2026 21:40:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/180470.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 03 May 2007 09:43:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Thu, 03 May 2007 09:43:43 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ist es möglich eine Bibliothek in C++ für alle Plattformen (Linux, andere unix-artige, Window) zu schreiben, ohne die komplette Bibliothek mehrmals zu implementieren?</p>
<p>So wie ich das momentan sehe:<br />
Shared Libraries (.so) laufen nur unter Unix etc.<br />
DLL laufen nur unter Windows.</p>
<p>Muss ich also immer zweigleisig fahren? Ist es schwer, eine Shared Libary in eine DLL zu konvertieren?</p>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1277999</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1277999</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Thu, 03 May 2007 09:43:43 GMT</pubDate></item><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Thu, 03 May 2007 09:47:53 GMT]]></title><description><![CDATA[<p>Solange du dich nicht zu stark auf systemspezifische Funktionen verlässt, dürften die meisten Programme problemlos ausgetauscht werden können - allerdings eher in Quelltext-Form (sprich: Du schreibst das Programm einmal und compilerst es dann je nach Bedarf unter Linux oder Windows). Auf Ebene der fertigen Lib's/DLL's dürfte es schwierig sein, Funktionalitäten auszutauschen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278000</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 03 May 2007 09:47:53 GMT</pubDate></item><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Thu, 03 May 2007 09:51:16 GMT]]></title><description><![CDATA[<p>Hi, danke für die Antwort...</p>
<p>Ich habe kein Problem einen Quellcode mehrmals für verschiedene Plattformen zu kompilieren. Von mir aus gibt es eine DLL und eine SO.<br />
Mich interessiert nur der Aufwand - ich will nicht eine Bibliothek nach einer erfolgreichen Implementierung in Linux nochmal komplett unter Windows schreiben müssen, nur weil DLL Codes anders aussehen müssen.</p>
<p>Systemspezifische Funktionen werden nicht verwendet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278002</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Thu, 03 May 2007 09:51:16 GMT</pubDate></item><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Thu, 03 May 2007 09:54:46 GMT]]></title><description><![CDATA[<p>Frager schrieb:</p>
<blockquote>
<p>ich will nicht eine Bibliothek nach einer erfolgreichen Implementierung in Linux nochmal komplett unter Windows schreiben müssen, nur weil DLL Codes anders aussehen müssen.</p>
</blockquote>
<p>Ich weiß nicht genau, wie Linux' Shared Library's aufgebaut sein müssen, aber technisch dürfte es da wenige Unterschied geben - und um die meisten davon sollte sich der Compiler kümmern können.<br />
(das einzige, was du eventuell neu schreiben müsstest, wäre afaik ein Äquivalent zur DllMain()-Funktion)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278005</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 03 May 2007 09:54:46 GMT</pubDate></item><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Thu, 03 May 2007 09:55:49 GMT]]></title><description><![CDATA[<p>Frager schrieb:</p>
<blockquote>
<p>Mich interessiert nur der Aufwand</p>
</blockquote>
<p>Das hängt stark von der Bibliothek ab. Willst du z.B. ein GUI-Toolkit schreiben, wird das sehr aufwändig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278006</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Thu, 03 May 2007 09:55:49 GMT</pubDate></item><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Thu, 03 May 2007 09:56:54 GMT]]></title><description><![CDATA[<p>Nein, es kommen nur Funktionalitäten aus der STL und der Standardbibliothek zum Einsatz. Noch ein wenig was mit Sockets etc., aber mehr nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278007</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Thu, 03 May 2007 09:56:54 GMT</pubDate></item><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Thu, 03 May 2007 10:14:25 GMT]]></title><description><![CDATA[<p>Dann wird der Aufwand eher minimal sein. Wenn du z.B. hauptsächlich Std-Lib-Komponenten benutzt, ist der Aufwand praktisch null. (so sollte es zumindest sein ;)) Wenn es um Netzwerk-Sachen geht, kannst du z.B. eine platformneutrale Netzwerk-Lib wie Boost.asio benutzen, und dann müsste auch hier der Aufwand praktisch null sein.</p>
<p>Soll heißen: wenn du selber wiederrum nur fertig platformübergreifende Libs benutzt, wirst auch du weniger Arbeit haben. Ist doch eigentlich ganz logisch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278012</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Thu, 03 May 2007 10:14:25 GMT</pubDate></item><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Thu, 03 May 2007 10:49:01 GMT]]></title><description><![CDATA[<p>Es gibt einen ANSI-C++-Standard. Wenn Du Dich an den hälst, ist der Code portabel. Da ist es unerheblich, ob der Code zu einer Applikation, einer shared-library oder eine DLL gelinkt wird.</p>
<p>In der Praxis gibt es immer wieder mal Probleme, wenn man unterschiedliche Compiler verwendet. Diese lassen sich aber in der Regel durch Studium des ANSI-Standards genau einem Schuldigen zuweisen.</p>
<p>Meine Erfahrung ist, daß die meisten Probleme daher kommen, daß das eigene Programm sich nicht exakt an den Standard hält. Tut man dies, gibt es wenig Probleme.</p>
<p>Tntnet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278032</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Thu, 03 May 2007 10:49:01 GMT</pubDate></item><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Thu, 03 May 2007 11:42:49 GMT]]></title><description><![CDATA[<p>tntnet schrieb:</p>
<blockquote>
<p>Es gibt einen ANSI-C++-Standard. Wenn Du Dich an den hälst, ist der Code portabel. Da ist es unerheblich, ob der Code zu einer Applikation, einer shared-library oder eine DLL gelinkt wird.</p>
<p>In der Praxis gibt es immer wieder mal Probleme, wenn man unterschiedliche Compiler verwendet. Diese lassen sich aber in der Regel durch Studium des ANSI-Standards genau einem Schuldigen zuweisen.</p>
<p>Meine Erfahrung ist, daß die meisten Probleme daher kommen, daß das eigene Programm sich nicht exakt an den Standard hält. Tut man dies, gibt es wenig Probleme.</p>
<p>Tntnet</p>
</blockquote>
<p>Na ja, die eigentlichen Probleme treten auf, wenn auf Libraries von 3ten angewiesen ist. Dass Libraries Multiplattformfaehig sind ist laengst nicht selbstverstaendlich. Viel wichtiger als 100% Standardkonform zu sein ists IMO, bei der Librarywahl vorsichtig zu sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278062</guid><dc:creator><![CDATA[Blue-Tiger]]></dc:creator><pubDate>Thu, 03 May 2007 11:42:49 GMT</pubDate></item><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Thu, 03 May 2007 13:35:22 GMT]]></title><description><![CDATA[<p>Eigentliche Probleme gibt es viele. Ich halte es für unnötig zu erwähnen, daß plattformspezifische Bibliotheken nicht plattformübergreifend sind. <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="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> .</p>
<p>Der Frager hatte ja gesagt, daß systemspezifische Funktionen nicht verwendet werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278125</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Thu, 03 May 2007 13:35:22 GMT</pubDate></item><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Thu, 03 May 2007 13:47:12 GMT]]></title><description><![CDATA[<p>Danke für die Hilfe - das hört sich doch ganz gut an.</p>
<p>&quot;eine platformneutrale Netzwerk-Lib wie Boost.asio&quot;<br />
Ich habe immer gedacht die Standardbibliotheken liefern mir da entsprechende Funktionialitäten - oder war das in C? <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="😉"
    /> Egal, ich werd' mich umsehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278130</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Thu, 03 May 2007 13:47:12 GMT</pubDate></item><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Thu, 03 May 2007 15:09:37 GMT]]></title><description><![CDATA[<p>Frager schrieb:</p>
<blockquote>
<p>&quot;eine platformneutrale Netzwerk-Lib wie Boost.asio&quot;<br />
Ich habe immer gedacht die Standardbibliotheken liefern mir da entsprechende Funktionialitäten - oder war das in C? <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>
</blockquote>
<p>Nein, Netzwerkunterstützung gehört (leider?) nicht zum ANSI-Standard.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278180</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 03 May 2007 15:09:37 GMT</pubDate></item><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Thu, 03 May 2007 15:19:18 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>(das einzige, was du eventuell neu schreiben müsstest, wäre afaik ein Äquivalent zur DllMain()-Funktion)</p>
</blockquote>
<p>Diese Perversion bleibt Nutzern von Shared Objects zum Glück erspart. <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>Bzw. (Linux):</p>
<p>Früher gab es _init und _fini Funktionen, diese sind heute deprecated und es gibt constructor und destructor als Funktionsatttribut. Das wird dann glaub ich auch für die globale-Objekte-Konstruktor-Funktion benutzt.</p>
<p>Bzw., falls die Frage auftaucht &quot;Warum Perversion?&quot;... Mindestens folgende Dinge darf man in DllMain nicht machen:</p>
<ul>
<li>DLLs laden</li>
<li>Threads starten</li>
</ul>
]]></description><link>https://www.c-plusplus.net/forum/post/1278192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278192</guid><dc:creator><![CDATA[Mr. N]]></dc:creator><pubDate>Thu, 03 May 2007 15:19:18 GMT</pubDate></item><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Fri, 04 May 2007 06:00:35 GMT]]></title><description><![CDATA[<p>Ok danke nochmals, eine Frage hätte ich dann noch. Sie mag ein wenig ungebildet klingen, aber ich habe mich mit C++ Bibliotheken (gerade unter Linux) bisher nur wenig befasst:</p>
<p>Welche Einschränkungen bezüglich objektorientierter Programmierung gibt es? Kann ich zum Beispiel in einer Bibliothek (sei es Linux oder Windows) eine Klasse definieren, die später eine andere Klasse außerhalb der Bibliothek beerbt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278499</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Fri, 04 May 2007 06:00:35 GMT</pubDate></item><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Fri, 04 May 2007 06:52:19 GMT]]></title><description><![CDATA[<p>Du kannst in einer Bibliothek Basisklassen definieren und in deinem Hauptprogramm ableiten. Andersrum geht es nicht, da die Bibliothek nicht gegen dein Hauptprogramm linken kann und daher die Funktionen des Hauptprogramms nicht zur verfügung stehen.</p>
<p>Ich habe in meinem <a href="http://www.tntnet.org/" rel="nofollow">Tntnet</a> eine shared library libtntnet, welches alles enthält, was sowohl das Hauptprogramm tntnet als auch die Komponenten, die als shared library zur Verfügung gestellt werden, benötigen.</p>
<p>Übrigens sind diese DllMain- und sonstigen Funktionen unnötig. Man kann statische Objektinstanzen anlegen deren Konstruktoren zur Ladezeit aufgerufen werden.</p>
<p>Tntnet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278516</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Fri, 04 May 2007 06:52:19 GMT</pubDate></item><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Fri, 04 May 2007 07:01:49 GMT]]></title><description><![CDATA[<p>Danke für deine Antwort - ich wollte natürlich aus dem Hauptprogramm heraus eine Klasse ableiten. Dass es anders herum nicht geht, ist klar.</p>
<p>Dein TNTNET Projekt klingt sehr interessant. Wie kann ich mir das eigentlich vorstellen? Ist das ein komplett eigener Webserver oder eher eine Art Application-Server der z.B. mit dem Apache via CGI verknüpft werden kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278521</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Fri, 04 May 2007 07:01:49 GMT</pubDate></item><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Fri, 04 May 2007 07:20:56 GMT]]></title><description><![CDATA[<p>tntnet schrieb:</p>
<blockquote>
<p>Andersrum geht es nicht, da die Bibliothek nicht gegen dein Hauptprogramm linken kann und daher die Funktionen des Hauptprogramms nicht zur verfügung stehen.</p>
</blockquote>
<p>Doch. Ist aber nicht unbedingt empfehlenswert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278533</guid><dc:creator><![CDATA[Mr. N at work]]></dc:creator><pubDate>Fri, 04 May 2007 07:20:56 GMT</pubDate></item><item><title><![CDATA[Reply to Plattformunabhängige C++ Bibliotheken on Fri, 04 May 2007 13:46:14 GMT]]></title><description><![CDATA[<p>Frager schrieb:</p>
<blockquote>
<p>Danke für deine Antwort - ich wollte natürlich aus dem Hauptprogramm heraus eine Klasse ableiten. Dass es anders herum nicht geht, ist klar.</p>
<p>Dein TNTNET Projekt klingt sehr interessant. Wie kann ich mir das eigentlich vorstellen? Ist das ein komplett eigener Webserver oder eher eine Art Application-Server der z.B. mit dem Apache via CGI verknüpft werden kann?</p>
</blockquote>
<p>Es ist ein eigenständiger Webserver. Genauere Infos gibt es auf der Homepage oder in der Dokumentation oder im IRC unter Freenode #tntnet.</p>
<p>Gruß</p>
<p>Tntnet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278809</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Fri, 04 May 2007 13:46:14 GMT</pubDate></item></channel></rss>