<?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[DLLs aufrufen und dessen Funktionen ausführen]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>Ich hab jetzt endlich mal was mit DLLs gemacht, allerdings in PureBasic, aber das macht ja nichts denn DLLs kann man ja auch verwänden um in einer Sprache etwas zu schreiben und die DLL dann in einer anderen Sprache wieder zu verwänden</p>
<p>So habe ich das auch mit PureBasic und Blitz3D gemacht, in PB geschrieben und in B3D die DLL genutzt.</p>
<p>Das möchte ich jetzt auch mal mit C++ machen, also so zu sagen als Notlösung um Dinge, die ich in C++ noch nicht kann aber dafür in anderen Sprachen, durch DLLs zu nutzen.<br />
Aber ich weiß nicht welche Bibliothek ich dafür laden muss und wie die Funktionen heißen um eine DLL Funktion auf zu rufen.</p>
<p>Kann mir da vielleicht jemand einen kleinen BeispielCode in`s Forum tippen?<br />
Sollte doch nicht so lang sein, oder?!</p>
<p>Gruß LukasBanana</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178178/dlls-aufrufen-und-dessen-funktionen-ausführen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Jul 2026 13:13:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178178.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 08 Apr 2007 17:20:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Sun, 08 Apr 2007 17:20:39 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>Ich hab jetzt endlich mal was mit DLLs gemacht, allerdings in PureBasic, aber das macht ja nichts denn DLLs kann man ja auch verwänden um in einer Sprache etwas zu schreiben und die DLL dann in einer anderen Sprache wieder zu verwänden</p>
<p>So habe ich das auch mit PureBasic und Blitz3D gemacht, in PB geschrieben und in B3D die DLL genutzt.</p>
<p>Das möchte ich jetzt auch mal mit C++ machen, also so zu sagen als Notlösung um Dinge, die ich in C++ noch nicht kann aber dafür in anderen Sprachen, durch DLLs zu nutzen.<br />
Aber ich weiß nicht welche Bibliothek ich dafür laden muss und wie die Funktionen heißen um eine DLL Funktion auf zu rufen.</p>
<p>Kann mir da vielleicht jemand einen kleinen BeispielCode in`s Forum tippen?<br />
Sollte doch nicht so lang sein, oder?!</p>
<p>Gruß LukasBanana</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261790</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Sun, 08 Apr 2007 17:20:39 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Sun, 08 Apr 2007 18:41:54 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Erstmal zur Defninition der Funktionen, die in der DLL ausgelagert werden sollen. Die folgende Datei wird dann zur DLL kompiliert:</p>
<p>dll.cpp:</p>
<pre><code class="language-cpp">#include &quot;dll.h&quot;
#include &lt;windows.h&gt;
#include &lt;iostream&gt;

void hallo()
{
  std::cout&lt;&lt;&quot;HALLO AUS DER DLL !!!!&quot;;
}

BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
                       DWORD reason        /* Reason this function is being called. */ ,
                       LPVOID reserved     /* Not used. */ )
{
    switch (reason)
    {
      case DLL_PROCESS_ATTACH:
        break;

      case DLL_PROCESS_DETACH:
        break;

      case DLL_THREAD_ATTACH:
        break;

      case DLL_THREAD_DETACH:
        break;
    }

    /* Returns TRUE on success, FALSE on failure */
    return TRUE;
}
</code></pre>
<p>Nun die dazugehörige Headerdatei (benötigt man zur Kompilierung der DLL:)</p>
<pre><code class="language-cpp">#ifndef _DLL_H_
#define _DLL_H_

#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */

extern &quot;C&quot;
{
    DLLIMPORT void hallo ();
}

#endif
</code></pre>
<p>Nachdem du nun die DLL erfolgreich kompilert hast, kannst du sie nun wiefolgt anwenden;</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;

using namespace std;

typedef void (*ptrhallo)();

int main ()
{

     ptrhallo MeineDllFunktion;
     HINSTANCE hLib;

     //Holt mir das Handle auf die DLL
     hLib = LoadLibrary(&quot;Sleep.dll&quot;);
     BOOL status;

     if (hLib)
     {
          MeineDllFunktion = (ptrhallo) GetProcAddress(hLib, &quot;hallo&quot;);
          MeineDllFunktion ();
     }
     else
        cout &lt;&lt; &quot;Fehler: Konnte die Funktion nicht aufrufen&quot; &lt;&lt;&quot;\n&quot;;

     status = FreeLibrary(hLib); //Löst das Handle wieder
     getchar ();
     return 0;
}
</code></pre>
<p>Hoffe das hilft weiter MfG mikey.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261830</guid><dc:creator><![CDATA[mikey]]></dc:creator><pubDate>Sun, 08 Apr 2007 18:41:54 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Sun, 08 Apr 2007 18:26:31 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Wie kann ich mehrere Klassen verteilt auf jeweils eine 1 Header und eine Sourcedatei nun zu einer dll zusammenfassen?</p>
<p>Das mit dem Codebeispiel ist dabei sehr nützlich.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261834</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 08 Apr 2007 18:26:31 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Sun, 08 Apr 2007 18:33:30 GMT]]></title><description><![CDATA[<p>Du kannst nach oben beschriebenen Schema beliebig viele Dateien zu einer DLL zusammenfassen. Nur die DllMain benötigst du nur in einem einzigen Sourcefile deines DLL-Projekts.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261837</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sun, 08 Apr 2007 18:33:30 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Sun, 08 Apr 2007 18:40:25 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>SideWinder schrieb:</p>
<blockquote>
<p>Du kannst nach oben beschriebenen Schema beliebig viele Dateien zu einer DLL zusammenfassen. Nur die DllMain benötigst du nur in einem einzigen Sourcefile deines DLL-Projekts.</p>
<p>MfG SideWinder</p>
</blockquote>
<p>Genau daran bin ich immer gescheitert. Das es geht, weiß ich ja, nur bekomme ich es nicht hin.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261840</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 08 Apr 2007 18:40:25 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Sun, 08 Apr 2007 18:54:00 GMT]]></title><description><![CDATA[<p>Für die Zeit die du dich hier schon rumtreibst gibst du aber immer noch sehr tolle Fehlerbeschreibungen ab <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261858</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sun, 08 Apr 2007 18:54:00 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Sun, 08 Apr 2007 19:01:22 GMT]]></title><description><![CDATA[<p>Verschiebt das bitte noch in's WinAPI Subforum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261867</guid><dc:creator><![CDATA[mikey]]></dc:creator><pubDate>Sun, 08 Apr 2007 19:01:22 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Sun, 08 Apr 2007 20:09:00 GMT]]></title><description><![CDATA[<p>Hey &quot;mikey&quot;, danke für dein Beispiel <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 />
Ich hab bloß noch ein kleines Problem:<br />
wenn ich dann die Funktion &quot;MeineDllFunktion();&quot; aufrufe kommt das beliebte Windows Fenster &quot;Problem senden/ nicht senden&quot;.<br />
Da ich DLL Programmierung in C++ noch nicht gemacht habe kann ich mir nicht helfen <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="😞"
    /> , weißt du vielleicht woran das Problem liegen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261913</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Sun, 08 Apr 2007 20:09:00 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Sun, 08 Apr 2007 20:21:41 GMT]]></title><description><![CDATA[<p>Hmm hab den selben Code bei mir ausprobiert, kommt auch die Fehlermeldung. Hab grad keine Ahnung, an was das liegen könnte, aber wenn der Thread mal in's WinAPI Land verschoben werden würde, könnte man dir sicher besser helfen. Leider kann ich mir jetzt selber nichtmehr unter die Arme greifen, vorher klappte das noch... Warte mal etwas ab, mal sehen was die anderen dazu sagen <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261922</guid><dc:creator><![CDATA[mikey]]></dc:creator><pubDate>Sun, 08 Apr 2007 20:21:41 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Sun, 08 Apr 2007 21:03:57 GMT]]></title><description><![CDATA[<p>Da habt ihr wahrscheinlich was beim Linken der Standard-Bibliothek verkackt <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="😃"
    /></p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261948</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sun, 08 Apr 2007 21:03:57 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Sun, 08 Apr 2007 21:09:48 GMT]]></title><description><![CDATA[<p>Das ist eher ein Kompilerproblem. Stichwort : &quot;name-mangeling&quot;</p>
<p>Die DLL enthält bestimmt eine Export-Funktion namens &quot;_hallo&quot; oder noch abgefahrener.</p>
<p>Probier mal die Funktion als CALLBACK zu deklarieren :</p>
<pre><code class="language-cpp">extern &quot;C&quot;
{
//    DLLIMPORT void hallo ();
    DLLIMPORT void CALLBACK hallo ();
}

// void hallo()
void CALLBACK hallo()
{
  std::cout&lt;&lt;&quot;HALLO AUS DER DLL !!!!&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1261952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261952</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 08 Apr 2007 21:09:48 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Mon, 09 Apr 2007 08:35:05 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-403.html" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-4.html" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262071</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Mon, 09 Apr 2007 08:35:05 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Mon, 09 Apr 2007 14:37:01 GMT]]></title><description><![CDATA[<p>chrische5 schrieb:</p>
<blockquote>
<p>Hallo</p>
<p>Wie kann ich mehrere Klassen verteilt auf jeweils eine 1 Header und eine Sourcedatei nun zu einer dll zusammenfassen?</p>
<p>Das mit dem Codebeispiel ist dabei sehr nützlich.</p>
<p>chrische</p>
</blockquote>
<p>Du benutzt einfach bei der Deklaration der Klasse das Schlüsselwort <em>__declspec(dllexport)</em>, Beispiel:<br />
<strong>CExample.hpp:</strong></p>
<pre><code class="language-cpp">class __declspec(dllexport) CExample
{
   private:
     int m_iValue;
     // usw...
   public:
     CExample(void);
     ~CExample(void);

     int GetValue(void) const;
     void SetValue(int iNew);
     // usw...
}
</code></pre>
<p><strong>CExample.cpp:</strong></p>
<pre><code class="language-cpp">CExample::CExample(void)
{
   m_iValue = 0;
   // ...
}

CExample::~CExample(void)
{
   // ...
}

int CExample::GetValue(void) const
{
   // ...
   return (m_iValue);
}

void CExample::SetValue(int iNew)
{
   m_iValue = iNew;
   // ...
}
</code></pre>
<p>Die Dateien einfach mit ins DLL-Projekt, compilieren und gut ist <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>PS: Hier darf natürlich NICHT das Schlüsselwort <em>extern &quot;C&quot;</em> verwendet werden!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262312</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Mon, 09 Apr 2007 14:37:01 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Mon, 09 Apr 2007 17:20:26 GMT]]></title><description><![CDATA[<p>Also als ich das, was &quot;CodeFinder&quot; geschrieben hat, hinzugefügt habe, hat gar nichts mehr funktioniert <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="😞"
    /><br />
Weiß denn keiner warum ich die geladene DLL Funktion nicht aufrufen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262424</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Mon, 09 Apr 2007 17:20:26 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Mon, 09 Apr 2007 17:21:44 GMT]]></title><description><![CDATA[<p>SideWinder hat ja auch chrische geantwortet, nicht dir. Immer das selbe, wenn manche Leute mitten in einen Thread platzen, und dort ihre Fragen stellen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262425</guid><dc:creator><![CDATA[mikey]]></dc:creator><pubDate>Mon, 09 Apr 2007 17:21:44 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Tue, 10 Apr 2007 18:31:01 GMT]]></title><description><![CDATA[<p>Hey mikey: hast du das Problem schon behoben? Ich brauch Hilfe zum Thema DLLs <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/1263231</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263231</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Tue, 10 Apr 2007 18:31:01 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Tue, 10 Apr 2007 21:02:47 GMT]]></title><description><![CDATA[<p>Nee leider nicht, ich weis auch nicht an was es liegt <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="😞"
    /> Sorry</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263363</guid><dc:creator><![CDATA[mikey]]></dc:creator><pubDate>Tue, 10 Apr 2007 21:02:47 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Tue, 10 Apr 2007 21:52:25 GMT]]></title><description><![CDATA[<p>Vielleicht sollte das Problem nochmal beschrieben werden, mit Beispielcode!<br />
Im Prinzip gibt es 2 Sachen zu beachten:<br />
will man eine Klasse in eine DLL packen, so kann diese DLL nicht mehr dynamisch sondern nur noch statisch gelinkt werden (ja mit ein paar Assembler tricks kann man das umgehen, aber das ist nicht Sinn des Erfinders). Dabei werden die Funktionsnamen geändert (name-mangling) damit keiner auf die Idee kommt, direkt eine Funktion auszuführen.<br />
Will man stattdessen einfach nur irgendwelche Funktionen in eine DLL packen, die von verschiedenen Programmiersprachen benutzt werden können, so muss man dieses name-mangling ausschalten (mit extern &quot;C&quot;).</p>
<p>DLLMain braucht man nicht unbedingt, nur wenn man explizit auf das Laden, Entladen der DLL reagieren möchte.</p>
<p>Einfaches Beispiel für eine DLL die eine kleine Funktion exportiert:</p>
<pre><code class="language-cpp">extern &quot;C&quot; __declspec(dllexport) void test()
{
MessageBox(NULL, &quot;Hello World&quot;, &quot;&quot;, MB_OK);
}
</code></pre>
<p>Oder hab ich jetzt auf die falsche Frage reagiert bzw. war das gar nicht die Frage?!</p>
<p>PS: obiges Beispiel gilt nur für MSVS, keine Ahnung wie die Syntax für andere Compiler lautet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263390</guid><dc:creator><![CDATA[pub00515]]></dc:creator><pubDate>Tue, 10 Apr 2007 21:52:25 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Wed, 11 Apr 2007 13:13:51 GMT]]></title><description><![CDATA[<p>Du scheinst dich mit DLLs aus zu kennen, dann kann ich dich ja noch mal direkt fragen, ob du mir einen (so einfach wie möglich, aber gerne mit Beschreibung), Beipsiel Code schreiben könntest der einmal eine Funktion als DLL exportiert und ein Beispiel Code der diese Funktion aus der DLL wieder importiert!<br />
Würde mich über die zwei BeispielCodes echt freuen, Danke! <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263825</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Wed, 11 Apr 2007 13:13:51 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Wed, 11 Apr 2007 13:27:07 GMT]]></title><description><![CDATA[<p>Die Exportierung habe ich oben beschrieben - Du erstellt einfach ein Win32 Projekt, dann unter den Einstellungen wählst du eine DLL aus und haust die oben beschriebene Fkt. in eine CPP Datei und voila, die DLL ist fertig (angenommen Du arbeitest mit VS2005)</p>
<p>Die DLL kann entweder statisch oder dynamisch geladen werden. Ich werde jetzt erstmal auf die dynamische Variante eingehen:</p>
<p>irgendwo in der main:</p>
<pre><code class="language-cpp">HMODULE hDLL = LoadLibrary(&quot;Dllname.dll&quot;);
void (*pfunc)() = (void (*)()) GetProcAddress(hDLL, &quot;test&quot;);
pfunc();
</code></pre>
<p>Damit wird dann die test() Funktion in der DLL aufgerufen. Achtung, es wurde keine Fehlerüberprüfung durchgeführt...<br />
Wichtig ist nur, dass die DLL auch auffindbar ist <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="🙂"
    /> Sonst liefert LoadLibrary() NULL.</p>
<p>Logisch soweit?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263839</guid><dc:creator><![CDATA[pub00515]]></dc:creator><pubDate>Wed, 11 Apr 2007 13:27:07 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Wed, 11 Apr 2007 16:47:16 GMT]]></title><description><![CDATA[<p>Cool! Danke &quot;pub00515&quot;! <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="🙂"
    /></p>
<p>Hat funktioniert und war super leicht!</p>
<p>Gruß LukasBanana</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264011</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Wed, 11 Apr 2007 16:47:16 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Wed, 11 Apr 2007 17:14:42 GMT]]></title><description><![CDATA[<p>Da empfiehlt sich auch ein <em>typedef</em> zu verwenden. Macht die ganze Sache übersichtlicher <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1264038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264038</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 11 Apr 2007 17:14:42 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Wed, 11 Apr 2007 17:17:42 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Da empfiehlt sich auch ein <em>typedef</em> zu verwenden. Macht die ganze Sache übersichtlicher <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>Vielleicht so?</p>
<pre><code class="language-cpp">typedef extern &quot;C&quot; __declspec(dllexport) DLLexport;
</code></pre>
<p>Gruß LukasBanana</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264042</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Wed, 11 Apr 2007 17:17:42 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Wed, 11 Apr 2007 17:24:28 GMT]]></title><description><![CDATA[<p>Nee dafür benutzt Du besser ein #define.</p>
<p>Also</p>
<pre><code class="language-cpp">#define DLLEXPORT __declspec(dllexport)
</code></pre>
<p>Was Codefinder vermutlich meint, sind typedefs für die Funktionspointer.<br />
z.B.</p>
<pre><code class="language-cpp">typedef void (*voidfunc)();
</code></pre>
<p>Dann kannst Du schreiben:</p>
<pre><code class="language-cpp">voidfunc pfunc = (voidfunc) GetProcAddress(...)
</code></pre>
<p>macht die Sache wesentlich übersichtlicher wenn der Prototyp länger wird. Oder man es oft benutzt :-).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264047</guid><dc:creator><![CDATA[pub00515]]></dc:creator><pubDate>Wed, 11 Apr 2007 17:24:28 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Wed, 11 Apr 2007 17:26:28 GMT]]></title><description><![CDATA[<p>Hehe, ne so (sry, hätte das Bsp sofort posten sollen):</p>
<pre><code class="language-cpp">typedef void (*PFUNCTION)(void); // 'PFUNCTION' wird jetzt wie ein Typ behandelt, also bspw. wie int
HMODULE hDLL = LoadLibrary(TEXT(&quot;Dllname.dll&quot;)); // DLL laden
if(hDLL != NULL) // Prüfen, ob DLL erfolgreich geladen werden konnte
{
   // Funktionszeiger-Variable anlegen und Adresse der Funktion in der DLL ermitteln:
   PFUNCTION pFunction = reinterpret_cast&lt;PFUNCTION&gt;(GetProcAddress(hDLL, &quot;test&quot;));
   if(pFunction != NULL) // Wichtig: Konnte die Adresse der Funktion erfolgreich ermittelt werden ? Falls nein, darf die Funktion nicht aufgerufen werden, sonst würde es hier eine Access-Violation geben!
      pFunction(); // Erfolgreich ermittelt, also aufrufen!
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1264049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264049</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 11 Apr 2007 17:26:28 GMT</pubDate></item><item><title><![CDATA[Reply to DLLs aufrufen und dessen Funktionen ausführen on Wed, 11 Apr 2007 17:26:57 GMT]]></title><description><![CDATA[<p>Also so:</p>
<pre><code class="language-cpp">/* ... */
typedef (void (*)()) voidfunc;
typedef (int (*)()) intfunc;
typedef (float (*)()) floatfunc;
/* ... */
void (*MyFunc)() = voidfunc GetProcAddress(hDLL, &quot;MyDLLFunction&quot;);
</code></pre>
<p>Gruß LukasBanana</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264050</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Wed, 11 Apr 2007 17:26:57 GMT</pubDate></item></channel></rss>