<?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[Funktion aufrufen - Name liegt als string vor]]></title><description><![CDATA[<p>Wie ruft man eine Funktion auf, wenn man sie aus bestimmten Gründen nicht direkt im Code nennen kann, sondern der Funktionsname nur als string vorliegt?</p>
<p>Beispiel:<br />
Ein string hat den Inhalt &quot;drucken&quot;. Nun möchte ich die Funktion &quot;void drucken()&quot; aufrufen, ohne dass ich im Code drucken(); eingeben kann. Ich muss die Funktion drucken() mit Hilfe des strings aufrufen. Wie bewerkstelligt man das?</p>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/138227/funktion-aufrufen-name-liegt-als-string-vor</link><generator>RSS for Node</generator><lastBuildDate>Sun, 02 Aug 2026 10:33:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/138227.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 24 Feb 2006 12:53:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktion aufrufen - Name liegt als string vor on Fri, 24 Feb 2006 12:53:54 GMT]]></title><description><![CDATA[<p>Wie ruft man eine Funktion auf, wenn man sie aus bestimmten Gründen nicht direkt im Code nennen kann, sondern der Funktionsname nur als string vorliegt?</p>
<p>Beispiel:<br />
Ein string hat den Inhalt &quot;drucken&quot;. Nun möchte ich die Funktion &quot;void drucken()&quot; aufrufen, ohne dass ich im Code drucken(); eingeben kann. Ich muss die Funktion drucken() mit Hilfe des strings aufrufen. Wie bewerkstelligt man das?</p>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1001922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1001922</guid><dc:creator><![CDATA[Ingo]]></dc:creator><pubDate>Fri, 24 Feb 2006 12:53:54 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion aufrufen - Name liegt als string vor on Fri, 24 Feb 2006 12:57:34 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>als einfachsten</p>
<pre><code class="language-cpp">if (MyString == &quot;drucken&quot;) drucken();
</code></pre>
<p>wenn mehrere Aufzurufende Funktionen mit gleicher Parameter-Liste hast, kannst du auch eine std::map&lt;AnsiString, FunctionPointer&gt; nehmen.</p>
<p>Wenn es komplexer werden sollte, must du dir einen Parser schrieben, der Funktion und eventuelle Parameter extrahiert und ausführt.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1001926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1001926</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 24 Feb 2006 12:57:34 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion aufrufen - Name liegt als string vor on Fri, 24 Feb 2006 13:05:08 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wenn ich das so mache, dann würde ich doch wieder &quot;drucken&quot; in reinschrift in den quelltext schreiben. das soll aber eben verhindert werden.</p>
<p>wenn der string &quot;str&quot; also etwa den text &quot;drucken&quot; enthält, stelle ich mir das so vor:</p>
<p>str(); //das soll &quot;drucken();&quot; aufrufen, aber es gibt natürlich eine Fehlermeldung (Aufruf einer Nicht-Funktion)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1001933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1001933</guid><dc:creator><![CDATA[Ingo]]></dc:creator><pubDate>Fri, 24 Feb 2006 13:05:08 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion aufrufen - Name liegt als string vor on Fri, 24 Feb 2006 13:11:28 GMT]]></title><description><![CDATA[<p>akari hat die mehrere hinweise mit möglichen lösungen gegeben, ganz so einfach wie du es dir vorstellst ist das nicht.. geh mal den hinweisen nach und entscheide selber wieviel aufwand du betreiben willst</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1001942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1001942</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Fri, 24 Feb 2006 13:11:28 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion aufrufen - Name liegt als string vor on Fri, 24 Feb 2006 13:11:45 GMT]]></title><description><![CDATA[<p>Der Punkt ist ganz einfach - bis aus deinem Quelltext ein lauffähiges Programm wird, bleibt von der Funktion &quot;drucken()&quot; nur ein Haufen Bytes übrig, die der Prozessor als Befehle versteht. Also benötigst du eine eigene Tabelle, die dem String &quot;drucken&quot; die Adresse des Byte-Haufens drucken() zuordnet.</p>
<p>(und akari's Vorschlag mit der map&lt;&gt; ist wohl am einfachsten zu realisieren)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1001944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1001944</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Fri, 24 Feb 2006 13:11:45 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion aufrufen - Name liegt als string vor on Fri, 24 Feb 2006 13:12:02 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>natürlich geht es so wie du willst auf keinen Fall.<br />
Denn in C++ haben kompilierte Programme keine Symbolnamen mehr, sondern nur och Adressen. Du must also schon im Quellcode dafür sorgen, das in irgendeiner Weise String-Werte zu Funktionadressen zugeordnet werden.<br />
Was auch nicht so tragisch ist, denn du kannst je eh nicht eine Funktion die nicht zur Entwurfszeit schon fertig implementiert ist zur Laufzeit aufrufen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1001946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1001946</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 24 Feb 2006 13:12:02 GMT</pubDate></item></channel></rss>