<?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[C++ DLL Funktion exportieren mit __declspec(dllexport) geht nicht]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe eine DLL geschrieben, aus der eine Funktion exportiert werden soll. Normalerweise würde man das ja mit &quot;__declspec(dllexport)&quot; machen um sich eine .def-Datei zu sparen. Doch dies funktioniert bei mir nicht oder habe ich einen grundlegenden Fehler?</p>
<pre><code class="language-cpp">#ifdef CHANGESOUNDDEVICENATIVE_EXPORTS
#define CHANGESOUNDDEVICENATIVE_API __declspec(dllexport)
#else
#define CHANGESOUNDDEVICENATIVE_API __declspec(dllimport)
#endif

CHANGESOUNDDEVICENATIVE_API SoundDevicesManager *CreateSoundDevicesManager();
</code></pre>
<p>Wenn ich nun dumpbin verwende bekomme ich dies:</p>
<pre><code>Dump of file ChangeSoundDevice.Native.dll

File Type: DLL

  Summary

        3000 .data
        3000 .rdata
        2000 .reloc
        1000 .rsrc
        6000 .text
</code></pre>
<p>Gruß cookie-exploit</p>
<p>P.S.:<br />
Entwicklungsumgebung ist VS2010 und mein Betriebssystem ist Windows 7 Ultimate 64-Bit</p>
<p>Codegenerierung = Multithreaded -&gt; also kein .net</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/307504/c-dll-funktion-exportieren-mit-__declspec-dllexport-geht-nicht</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 18:01:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307504.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 28 Aug 2012 15:25:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ DLL Funktion exportieren mit __declspec(dllexport) geht nicht on Tue, 28 Aug 2012 15:25:03 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe eine DLL geschrieben, aus der eine Funktion exportiert werden soll. Normalerweise würde man das ja mit &quot;__declspec(dllexport)&quot; machen um sich eine .def-Datei zu sparen. Doch dies funktioniert bei mir nicht oder habe ich einen grundlegenden Fehler?</p>
<pre><code class="language-cpp">#ifdef CHANGESOUNDDEVICENATIVE_EXPORTS
#define CHANGESOUNDDEVICENATIVE_API __declspec(dllexport)
#else
#define CHANGESOUNDDEVICENATIVE_API __declspec(dllimport)
#endif

CHANGESOUNDDEVICENATIVE_API SoundDevicesManager *CreateSoundDevicesManager();
</code></pre>
<p>Wenn ich nun dumpbin verwende bekomme ich dies:</p>
<pre><code>Dump of file ChangeSoundDevice.Native.dll

File Type: DLL

  Summary

        3000 .data
        3000 .rdata
        2000 .reloc
        1000 .rsrc
        6000 .text
</code></pre>
<p>Gruß cookie-exploit</p>
<p>P.S.:<br />
Entwicklungsumgebung ist VS2010 und mein Betriebssystem ist Windows 7 Ultimate 64-Bit</p>
<p>Codegenerierung = Multithreaded -&gt; also kein .net</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246353</guid><dc:creator><![CDATA[cookie-exploit]]></dc:creator><pubDate>Tue, 28 Aug 2012 15:25:03 GMT</pubDate></item><item><title><![CDATA[Reply to C++ DLL Funktion exportieren mit __declspec(dllexport) geht nicht on Tue, 28 Aug 2012 15:38:11 GMT]]></title><description><![CDATA[<p>Und was genau ist jetzt das Problem? Probiers mal mit <code>dumpbin /EXPORTS deine.dll</code> <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/2246359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246359</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Tue, 28 Aug 2012 15:38:11 GMT</pubDate></item><item><title><![CDATA[Reply to C++ DLL Funktion exportieren mit __declspec(dllexport) geht nicht on Tue, 28 Aug 2012 15:54:29 GMT]]></title><description><![CDATA[<p>Das Problem ist, das die Funktion nicht exportiert wird, wenn ich keine .def-Datei angeben, was ja eigentlich passieren sollte da ich &quot;__declspec(dllexport)&quot; verwende.</p>
<p>Die Ausgabe, die ich ebend gepostet habe, war der Befehl &quot;dumpbin /EXPORTS meine.dll&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246370</guid><dc:creator><![CDATA[cookie-exploit]]></dc:creator><pubDate>Tue, 28 Aug 2012 15:54:29 GMT</pubDate></item><item><title><![CDATA[Reply to C++ DLL Funktion exportieren mit __declspec(dllexport) geht nicht on Tue, 28 Aug 2012 15:59:56 GMT]]></title><description><![CDATA[<p>Und CHANGESOUNDDEVICENATIVE_EXPORTS ist im dll Projekt auch definiert? Verwend __declspec(dllexport) mal direkt, um sicherzugehen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246374</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Tue, 28 Aug 2012 15:59:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ DLL Funktion exportieren mit __declspec(dllexport) geht nicht on Tue, 28 Aug 2012 16:02:59 GMT]]></title><description><![CDATA[<p>Also sofern Visual Studio keine fehler macht eigentlich schon und ich habe es auch mal direkt davorgeschrieben, jedoch ohne Erfolg. <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/2246376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246376</guid><dc:creator><![CDATA[cookie-exploit]]></dc:creator><pubDate>Tue, 28 Aug 2012 16:02:59 GMT</pubDate></item><item><title><![CDATA[Reply to C++ DLL Funktion exportieren mit __declspec(dllexport) geht nicht on Tue, 28 Aug 2012 16:05:55 GMT]]></title><description><![CDATA[<p>Sehr merkwürdig. Und der Header mit dieser Deklaration wird in der dll auch eingebunden und die dll die du anschaust ist auch tatsächlich das aktuelle Kompilat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246381</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Tue, 28 Aug 2012 16:05:55 GMT</pubDate></item><item><title><![CDATA[Reply to C++ DLL Funktion exportieren mit __declspec(dllexport) geht nicht on Tue, 28 Aug 2012 16:27:45 GMT]]></title><description><![CDATA[<p>Jap so sieht es aus, ist die aktuell gebaute DLL und auch die Header-Datei wird eingebunden.</p>
<p>ChangeSoundDevice.cpp</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &quot;ChangeSoundDevice.h&quot; //Header-Datei mit der Exportfunktion

SoundDevicesManager *CreateManager() {
...
}
</code></pre>
<p>dllmain.cpp</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &quot;ChangeSoundDevice.h&quot; //Header-Datei mit der Exportfunktion

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
					 )
{
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
	case DLL_THREAD_ATTACH:
	case DLL_THREAD_DETACH:
	case DLL_PROCESS_DETACH:
		break;
	}
	return TRUE;
}
</code></pre>
<p>Hier die Visual Studio ausgabe:</p>
<pre><code>1&gt;------ Neues Erstellen gestartet: Projekt: ChangeSoundDevice.Native, Konfiguration: Release Win32 ------
1&gt;  stdafx.cpp
1&gt;  ChangeSoundDevice.cpp
1&gt;  SoundDevicesManagerImpl.cpp
1&gt;  dllmain.cpp
1&gt;  Code wird generiert.
1&gt;  Codegenerierung ist abgeschlossen.
1&gt;  ChangeSoundDevice.Native.vcxproj -&gt; D:\Documents\Visual Studio 2010\Projects\ChangeSoundDevice\Release\ChangeSoundDevice.Native.dll
========== Alles neu erstellen: 1 erfolgreich, Fehler bei 0, 0 übersprungen ==========
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2246391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246391</guid><dc:creator><![CDATA[cookie-exploit]]></dc:creator><pubDate>Tue, 28 Aug 2012 16:27:45 GMT</pubDate></item><item><title><![CDATA[Reply to C++ DLL Funktion exportieren mit __declspec(dllexport) geht nicht on Tue, 28 Aug 2012 16:38:21 GMT]]></title><description><![CDATA[<p>Versuch mal, die Funktion auch bei der Definition als dllexport zu deklarieren...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246397</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Tue, 28 Aug 2012 16:38:21 GMT</pubDate></item><item><title><![CDATA[Reply to C++ DLL Funktion exportieren mit __declspec(dllexport) geht nicht on Tue, 28 Aug 2012 17:03:29 GMT]]></title><description><![CDATA[<p>Super, danke! Jetzt funktioniert es! <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>EDIT: Ich Trottel, mir ist gerade aufgefallen, dass ich als ich die Funktion umbenannt habe, ich vergessen habe den Namen bei der Implementierung auch zu ändern. -.-</p>
<p>Aber dank dir habe ich es ja herausgefunden! <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/2246403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246403</guid><dc:creator><![CDATA[cookie-exploit]]></dc:creator><pubDate>Tue, 28 Aug 2012 17:03:29 GMT</pubDate></item></channel></rss>