<?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[Dynamische DLL-Einbindung in Dev-C++]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich beschäftige mich grad mit DLL's und hab dazu auch sämtliche Tutorials gefunden, die allerdings alle für den BCB oder MSVC++ sind. Unter Dev-C++ krieg ich's aber irgendwie nicht gebacken...</p>
<p>Könnte mal jemand erklären, wie das geht?<br />
Es soll die DLL erstellt werden und dynamisch mit LoadLibrary geladen werden.<br />
Die Funktion der DLL kann ne normale MessageBox sein.</p>
<p>Dann komm ich da mal endlich weiter..</p>
<p>Vielen Dank schonmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190946/dynamische-dll-einbindung-in-dev-c</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 17:23:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190946.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 28 Aug 2007 14:34:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dynamische DLL-Einbindung in Dev-C++ on Tue, 28 Aug 2007 14:34:09 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich beschäftige mich grad mit DLL's und hab dazu auch sämtliche Tutorials gefunden, die allerdings alle für den BCB oder MSVC++ sind. Unter Dev-C++ krieg ich's aber irgendwie nicht gebacken...</p>
<p>Könnte mal jemand erklären, wie das geht?<br />
Es soll die DLL erstellt werden und dynamisch mit LoadLibrary geladen werden.<br />
Die Funktion der DLL kann ne normale MessageBox sein.</p>
<p>Dann komm ich da mal endlich weiter..</p>
<p>Vielen Dank schonmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353894</guid><dc:creator><![CDATA[shell]]></dc:creator><pubDate>Tue, 28 Aug 2007 14:34:09 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische DLL-Einbindung in Dev-C++ on Tue, 28 Aug 2007 14:44:59 GMT]]></title><description><![CDATA[<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-190757.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-190757.html</a> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1353896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353896</guid><dc:creator><![CDATA[augen_auf_beim_eierkauf]]></dc:creator><pubDate>Tue, 28 Aug 2007 14:44:59 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische DLL-Einbindung in Dev-C++ on Tue, 28 Aug 2007 14:47:24 GMT]]></title><description><![CDATA[<p>In den Projektoptionen im Reiter &quot;Allgemein&quot; auf DLL umstellen und sonst wie gehabt.<br />
Obwohl ich dir von Dev-C++ abraten muss! Das Ding hat nämlich ein paar Probleme wenn es um DLLS geht die in C++ geschrieben wurden.(Bugs frei Haus sozusagen <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/1353899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353899</guid><dc:creator><![CDATA[gosha16]]></dc:creator><pubDate>Tue, 28 Aug 2007 14:47:24 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische DLL-Einbindung in Dev-C++ on Tue, 28 Aug 2007 14:51:27 GMT]]></title><description><![CDATA[<p>ok hier mal ne kleine Beispiel-DLL:</p>
<p>mydll.h</p>
<pre><code class="language-cpp">#ifndef MYDLL_H
#define MYDLL_H

#ifdef _CREATE_MYDLL
#define MYDLL __declspec(dllexport)
#else
#define MYDLL __declspec(dllimport)
#endif

extern &quot;C&quot;
{
    int MYDLL MsgBox(const char* msg, const char* caption);
}

#endif
</code></pre>
<p>mydll.cpp</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;

#define _CREATE_MYDLL
#include &quot;mydll.h&quot;

int MYDLL MsgBox(const char* msg, const char* caption)
{
    return MessageBoxA(GetDesktopWindow(), msg, caption, MB_OK|MB_ICONINFORMATION);
}
</code></pre>
<p>wenn du das ganze mit *.a einbindest:</p>
<p>bei Dev-C++ bei Linkeroptionen den Pfad zur *.a-Datei angeben und der Quellcode:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &quot;mydll.h&quot;

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    MsgBox(&quot;Hallo&quot;, &quot;Hallo&quot;);
    return 0;
}
</code></pre>
<p>aber, du willst ja LoadLibrary sehen^^</p>
<p>also hier der Code:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;

typedef int (*LPMSGBOX)(const char*, const char*);

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    HMODULE hMyDLL = LoadLibrary(&quot;mydll.dll&quot;);
    if (hMyDLL == NULL)
        return -1; // Konnte nicht geladen werden!
    LPMSGBOX MsgBox = (LPMSGBOX)GetProcAddress(hMyDLL, &quot;MsgBox&quot;);
    if (MsgBox == NULL)
    {
        FreeLibrary(hMyDLL);
        return -2; // Funktion existiert nicht in der DLL!
    }
    MsgBox(&quot;Hallo&quot;, &quot;Hallo&quot;);
    FreeLibrary(hMyDLL);
    return 0;
}
</code></pre>
<p>damit sollte alles funktionieren</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353901</guid><dc:creator><![CDATA[DrakoXP]]></dc:creator><pubDate>Tue, 28 Aug 2007 14:51:27 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische DLL-Einbindung in Dev-C++ on Tue, 28 Aug 2007 15:28:52 GMT]]></title><description><![CDATA[<p>Also solche Antworten müsste es öfter geben!<br />
Danke DrakoXP, funktioniert 1a <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/1353920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353920</guid><dc:creator><![CDATA[shell]]></dc:creator><pubDate>Tue, 28 Aug 2007 15:28:52 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische DLL-Einbindung in Dev-C++ on Tue, 28 Aug 2007 15:41:23 GMT]]></title><description><![CDATA[<p>kein Problem</p>
<p>ich sollte vllt noch erwähnen, dass du mit der LoadLibrary-Methode auf keine Klassen zugreifen kannst.<br />
und durch das extern &quot;C&quot; ist es dir nicht möglich Funktionen in der DLL zu überladen.</p>
<p>solltest du beides vorhaben, so ist die Methode mit der *.a-Datei sinnvoller.</p>
<p>wenn du nur Funktionen überladen willst, so solltest du erst mit einem Tool, wie dllexp.exe in der DLL nachschauen,<br />
wie die gesuchten Funktionen richtig heißen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353929</guid><dc:creator><![CDATA[DrakoXP]]></dc:creator><pubDate>Tue, 28 Aug 2007 15:41:23 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische DLL-Einbindung in Dev-C++ on Tue, 28 Aug 2007 19:02:03 GMT]]></title><description><![CDATA[<p>DrakoXP schrieb:</p>
<blockquote>
<p>kein Problem</p>
<p>ich sollte vllt noch erwähnen, dass du mit der LoadLibrary-Methode auf keine Klassen zugreifen kannst.</p>
</blockquote>
<p>Nope, er kann ganz normal nen Klassenzeiger übergeben, dazu muß nur in der DLL und in seinem Programm die gleiche Klassen defenation sein, nur das überladen geht halt nicht, da haste recht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354062</guid><dc:creator><![CDATA[orr lol]]></dc:creator><pubDate>Tue, 28 Aug 2007 19:02:03 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische DLL-Einbindung in Dev-C++ on Tue, 28 Aug 2007 20:48:02 GMT]]></title><description><![CDATA[<p>Mann kann aber in ner DLL ne Instanz ner abgeleiteten Klasse erzeugen und zurückgeben, deren virtuelle Basisklasse im Hauptprogramm bekannt ist (und dann natürlich dort auch auf die virtuellen Methoden zugreifen), oder??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354162</guid><dc:creator><![CDATA[JimmydaMage]]></dc:creator><pubDate>Tue, 28 Aug 2007 20:48:02 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische DLL-Einbindung in Dev-C++ on Tue, 28 Aug 2007 21:20:13 GMT]]></title><description><![CDATA[<p>JimmydaMage schrieb:</p>
<blockquote>
<p>Mann kann aber in ner DLL ne Instanz ner abgeleiteten Klasse erzeugen und zurückgeben, deren virtuelle Basisklasse im Hauptprogramm bekannt ist (und dann natürlich dort auch auf die virtuellen Methoden zugreifen), oder??</p>
</blockquote>
<p>Jupp, sollte gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354186</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Tue, 28 Aug 2007 21:20:13 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische DLL-Einbindung in Dev-C++ on Tue, 28 Aug 2007 21:37:39 GMT]]></title><description><![CDATA[<p>Ja, das geht auch, macht aber in der Praxis selten einen Sinn</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354195</guid><dc:creator><![CDATA[orr lol]]></dc:creator><pubDate>Tue, 28 Aug 2007 21:37:39 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische DLL-Einbindung in Dev-C++ on Wed, 29 Aug 2007 19:52:55 GMT]]></title><description><![CDATA[<p>@orr lol:<br />
mit auf Klassen zugreifen meinte ich fokgendes -&gt;</p>
<p>wenn du in der DLL eine Klasse definierst, dann schreibst du deren Member-Funktionen (Methoden) ja auch in die DLL.<br />
diese Memberfunktionen kannst du aber mit Loadlibrary nicht nutzen.</p>
<p>obwohl, auf dem C-Weg ... ^^</p>
<p>naja, das is ne andere Geschichte...</p>
<p>Aber so ohne weiters glaube ich nicht, dass das geht.</p>
<p>wenn du eine Klasse in der DLL UND in deinem Programm vollständig implementierst,<br />
dann kannst du logischerweise auch auf Instanzen der Klasse in der DLL zugreifen <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>aber wenn die Klasse nur in der DLL implementiert ist, und du willst sie nutzen, bekommst du Probleme</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354880</guid><dc:creator><![CDATA[DrakoXP]]></dc:creator><pubDate>Wed, 29 Aug 2007 19:52:55 GMT</pubDate></item></channel></rss>