<?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 per String Aufrufen]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich möchte eine Funktion schreiben die einen char* bekommt und daraufhin jene Funktion aufruft die im String per Name steht. Die Namen dieser Funktionen stehen leider erst zur Laufzeit bzw. beim Kunden fest, da sie per dll eingebunden werden. Und welche dlls das seine werden... KA.<br />
Ich kann also kein if Statement der Form</p>
<p>If stringX == &quot;calcALL&quot; Then<br />
calcALL();<br />
Fi</p>
<p>machen. Links oder Stichworte die mich der Lösung näher bringen würden schon reichen.</p>
<p>Malte</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/71723/funktion-per-string-aufrufen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 14:13:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/71723.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 21 Apr 2004 10:15:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktion per String Aufrufen on Wed, 21 Apr 2004 10:15:53 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich möchte eine Funktion schreiben die einen char* bekommt und daraufhin jene Funktion aufruft die im String per Name steht. Die Namen dieser Funktionen stehen leider erst zur Laufzeit bzw. beim Kunden fest, da sie per dll eingebunden werden. Und welche dlls das seine werden... KA.<br />
Ich kann also kein if Statement der Form</p>
<p>If stringX == &quot;calcALL&quot; Then<br />
calcALL();<br />
Fi</p>
<p>machen. Links oder Stichworte die mich der Lösung näher bringen würden schon reichen.</p>
<p>Malte</p>
]]></description><link>https://www.c-plusplus.net/forum/post/505905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/505905</guid><dc:creator><![CDATA[Malte Hohmeier]]></dc:creator><pubDate>Wed, 21 Apr 2004 10:15:53 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion per String Aufrufen on Wed, 21 Apr 2004 10:39:23 GMT]]></title><description><![CDATA[<p>Wenn die funktionen aus ner Dll kommen kannst doch einfach GetProcAddress verwenden oder seh ich da was falsch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/505921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/505921</guid><dc:creator><![CDATA[CMatt]]></dc:creator><pubDate>Wed, 21 Apr 2004 10:39:23 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion per String Aufrufen on Wed, 21 Apr 2004 11:01:31 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>die Funktionen müssen alle die gleichen Parameter und den gleichen Rückgabewert haben.<br />
angenommen die exportieren Dllfunktionen hätten folgendes Muster:</p>
<pre><code class="language-cpp">bool Funktionsname(char* Parameter1, void* Parameter2);
</code></pre>
<p>So könnte dann der Code aussehen:</p>
<pre><code class="language-cpp">typedef bool (*DLLFUNCTION)(char* Parameter1, void* Parameter2);
bool ExecFunctionFromDll(char* Funktionsname, char* Dllname, char* Parameter1=NULL, void* Parameter2=NULL)
{
   HMODULE hLib = LoadLibrary(Dllname); // dll laden
   if(!hLib) return false; // dll nicht gefunden
   DLLFUNCTION pFn = (DLLFUNCTION) GetProcAddress(hLib, Funktionsname); // Zeiger auf die Funktion bekommen
   if(!pFn) // wenn Funktion nicht gefunden wird
   {
      FreeLibrary(hLib);
      return false;
   }
   pFn(Parameter1, Parameter2); // Funktion aufrufen
   FreeLibrary(hLib);
   return true;
}
</code></pre>
<p>Grüße Rapha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/505940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/505940</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Wed, 21 Apr 2004 11:01:31 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion per String Aufrufen on Wed, 21 Apr 2004 11:10:34 GMT]]></title><description><![CDATA[<p>Hallo CMatt und Rapha,</p>
<p>vielen Dank für die Hilfe:-) So geht es....</p>
<p>Viele Grüße</p>
<p>Malte</p>
]]></description><link>https://www.c-plusplus.net/forum/post/505950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/505950</guid><dc:creator><![CDATA[Malte Hohmeier]]></dc:creator><pubDate>Wed, 21 Apr 2004 11:10:34 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion per String Aufrufen on Wed, 21 Apr 2004 12:22:21 GMT]]></title><description><![CDATA[<p>Ich bin gerade am Testen und es funktioniert nicht...</p>
<p>Wie kann ich angeben das die Aufrufkonvention __stdcall sein soll?<br />
Keines von beiden funktioniert:<br />
typedef __stdcall bool (*DLLFUNC2)(double P1, double P2, int i);<br />
typedef bool __stdcall (*DLLFUNC2)(double P1, double P2, int i);</p>
]]></description><link>https://www.c-plusplus.net/forum/post/506026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/506026</guid><dc:creator><![CDATA[Malte Hohmeier]]></dc:creator><pubDate>Wed, 21 Apr 2004 12:22:21 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion per String Aufrufen on Wed, 21 Apr 2004 12:35:34 GMT]]></title><description><![CDATA[<p>Es war:<br />
typedef bool (__stdcall *DLLFUNC2)(double P1, double P2, int i);</p>
]]></description><link>https://www.c-plusplus.net/forum/post/506040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/506040</guid><dc:creator><![CDATA[Malte Hohmeier]]></dc:creator><pubDate>Wed, 21 Apr 2004 12:35:34 GMT</pubDate></item></channel></rss>