<?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[Problem mit Win32 DLL]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich schreibe mir für mein Win32-API Programm eine DLL, wenn ich kompilieren möchte, erscheint jedoch folgende Fehlermeldung:<br />
&quot;fatal error: #Fehler: eh.h is only for C++!&quot;</p>
<p>Hier entsprechend meinen doch noch sehr kleinen Code. Wo is der Fehler?</p>
<p>Datei lib.c</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;string&gt;
using namespace std;
#include &quot;lib.h&quot;

int WINAPI DllMain(HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
{
	return(TRUE);
}

EXPORT CALLBACK r__msgbox(string* r_param, HINSTANCE r_handle, HINSTANCE r_handleex);
{
	// funktionscode
	// ..........
}
</code></pre>
<p>Und der entspr. Header</p>
<pre><code class="language-cpp">#ifdef __cplusplus
#define EXPORT extern &quot;C&quot; __declspec(dllexport)
#else
#define EXPORT __declspec(dllexport)
#endif 

EXPORT CALLBACK r__msgbox(string* r_param, HINSTANCE r_handle, HINSTANCE r_handleex);
</code></pre>
<p>Achja, dann habe ich noch eine ganz wichtige Frage: Kann ich bei meiner Win32 Anwendung die DLL in die Anwendung mitkompilieren? Also dass die DLL eben in der EXE selbst vorhanden ist. Das fände ich sehr praktisch. Müsste eigentli. gehen, oder? Bei MFC kann man die Bibliotheken ja auch mitkompilieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/65173/problem-mit-win32-dll</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 13:24:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/65173.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Feb 2004 12:57:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Win32 DLL on Tue, 17 Feb 2004 12:58:15 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich schreibe mir für mein Win32-API Programm eine DLL, wenn ich kompilieren möchte, erscheint jedoch folgende Fehlermeldung:<br />
&quot;fatal error: #Fehler: eh.h is only for C++!&quot;</p>
<p>Hier entsprechend meinen doch noch sehr kleinen Code. Wo is der Fehler?</p>
<p>Datei lib.c</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;string&gt;
using namespace std;
#include &quot;lib.h&quot;

int WINAPI DllMain(HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
{
	return(TRUE);
}

EXPORT CALLBACK r__msgbox(string* r_param, HINSTANCE r_handle, HINSTANCE r_handleex);
{
	// funktionscode
	// ..........
}
</code></pre>
<p>Und der entspr. Header</p>
<pre><code class="language-cpp">#ifdef __cplusplus
#define EXPORT extern &quot;C&quot; __declspec(dllexport)
#else
#define EXPORT __declspec(dllexport)
#endif 

EXPORT CALLBACK r__msgbox(string* r_param, HINSTANCE r_handle, HINSTANCE r_handleex);
</code></pre>
<p>Achja, dann habe ich noch eine ganz wichtige Frage: Kann ich bei meiner Win32 Anwendung die DLL in die Anwendung mitkompilieren? Also dass die DLL eben in der EXE selbst vorhanden ist. Das fände ich sehr praktisch. Müsste eigentli. gehen, oder? Bei MFC kann man die Bibliotheken ja auch mitkompilieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/461080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/461080</guid><dc:creator><![CDATA[denial]]></dc:creator><pubDate>Tue, 17 Feb 2004 12:58:15 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Win32 DLL on Tue, 17 Feb 2004 12:59:53 GMT]]></title><description><![CDATA[<p>lib.<strong>c</strong></p>
<p>#include &lt;string&gt;<br />
using namespace std;<br />
...</p>
<p>sieht das für dich nach C oder C++ aus ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/461082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/461082</guid><dc:creator><![CDATA[CMatt]]></dc:creator><pubDate>Tue, 17 Feb 2004 12:59:53 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Win32 DLL on Tue, 17 Feb 2004 13:13:29 GMT]]></title><description><![CDATA[<p>Oh ich Noob <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="😃"
    /><br />
Wie komm ich darauf, die Datei .c zu nennen... Naja jetz kommt die Meldung &quot;Funktionskopf fehlt&quot;. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /><br />
Und wie sieht es mit der Frage bez. DLL linken aus? Weiß das jemand?</p>
<p>Danke nochmal. Muss noch viel lernen*g*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/461093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/461093</guid><dc:creator><![CDATA[denial]]></dc:creator><pubDate>Tue, 17 Feb 2004 13:13:29 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Win32 DLL on Tue, 17 Feb 2004 13:16:32 GMT]]></title><description><![CDATA[<blockquote>
<p>Wie komm ich darauf, die Datei .c zu nennen... Naja jetz kommt die Meldung &quot;Funktionskopf fehlt&quot;.</p>
</blockquote>
<pre><code class="language-cpp">EXPORT CALLBACK r__msgbox(string* r_param, HINSTANCE r_handle, HINSTANCE r_handleex);
{
}
</code></pre>
<p>mach mal das ; weg</p>
<p>Im Verzeichnis wo deine dll landet solltest du auch ne .lib finden. Linke diese zu deiner exe dazu und die dll wird dann automatisch beim programmstart geladen <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/461095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/461095</guid><dc:creator><![CDATA[CMatt]]></dc:creator><pubDate>Tue, 17 Feb 2004 13:16:32 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Win32 DLL on Tue, 17 Feb 2004 13:36:32 GMT]]></title><description><![CDATA[<p>Schon klar, ich möchte aber, dass die DLL in der EXE ist, und nicht mehr als Datei beiliegen muss <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 />
So wie man es bei MFC dazulinken kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/461121</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/461121</guid><dc:creator><![CDATA[denial]]></dc:creator><pubDate>Tue, 17 Feb 2004 13:36:32 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Win32 DLL on Tue, 17 Feb 2004 13:41:42 GMT]]></title><description><![CDATA[<p>Ne DLL in der exe wird auch Library geannt <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>Bei der Projekterstellung kannst du wählen ob du ne DLL (dynamic link library) oder eine Statische Lib haben willst. Wählst du das zweite ist die landed der gesammte code in der lib und wird in deine exe statisch eingelinkt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/461125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/461125</guid><dc:creator><![CDATA[CMatt]]></dc:creator><pubDate>Tue, 17 Feb 2004 13:41:42 GMT</pubDate></item></channel></rss>