<?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[Speicherzugriffsfehler in eigener DLL]]></title><description><![CDATA[<p>hi</p>
<p>Ich muss eine DLL schreiben die eine OggVorbis Audio Datei abspielt.Ich bekomme allerdings gleich beim initialisieren des Ogg Vorbis Codecs einen Speicherzugriffsfehler der nicht auftritt wenn ich es als eigenständige Anwendung kompiliere oder wenn ich die entsprechende Anweisung rausschmeisse.</p>
<p>Die .lib und .dll Dateien des codecs habe ich zum kompilieren meiner library zur verfügung. Dem Clientprogramm stelle ich danach meine library, die dazugehörige eigene lib datei und die dlls des codecs zur verfügung. Zum kompilieren des client programm brauche ich die .lib dateien des codecs nicht mehr oder?</p>
<p>Jetzt habe ich gelesen das ich genau wie dllexport mit dllimport funktionen aus anderen librarys &quot;importieren&quot; muss. (Warum ich das in normalen Anwendungen die dlls benutzen nicht machen muss hab ich allerdings nicht verstanden.) Nur kann ich ja nicht einfach in den headern des codecs mit compileranweisungen rumbasteln... Wie kann ich das Problem lösen?</p>
<pre><code class="language-cpp">#pragma comment(lib,&quot;ogg.lib&quot;)
#pragma comment(lib,&quot;vorbis.lib&quot;)
#pragma comment(lib,&quot;vorbisfile.lib&quot;)
#pragma comment(lib,&quot;vorbisenc.lib&quot;)

#include &lt;vorbis/codec.h&gt;
#include &lt;ogg/ogg.h&gt;
#include &lt;vorbis/vorbisenc.h&gt;
#include &lt;vorbis/vorbisfile.h&gt;
#include &lt;iostream&gt; 
#include &lt;fstream&gt; 

extern &quot;C&quot; __declspec (dllexport) int SDAudioOpen();

int SDAudioOpen()
{
	FILE *f;
	f = fopen(&quot;test.ogg&quot;,&quot;rb&quot;);
	if(f)
	{
		OggVorbis_File oggFile;

                 //Hier tritt der Speicherzugriffsfehler auf:
		ov_test(f, &amp;oggFile, NULL, 0);
	}

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/68369/speicherzugriffsfehler-in-eigener-dll</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Jul 2026 21:28:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/68369.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 17 Mar 2004 12:55:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speicherzugriffsfehler in eigener DLL on Wed, 17 Mar 2004 13:41:00 GMT]]></title><description><![CDATA[<p>hi</p>
<p>Ich muss eine DLL schreiben die eine OggVorbis Audio Datei abspielt.Ich bekomme allerdings gleich beim initialisieren des Ogg Vorbis Codecs einen Speicherzugriffsfehler der nicht auftritt wenn ich es als eigenständige Anwendung kompiliere oder wenn ich die entsprechende Anweisung rausschmeisse.</p>
<p>Die .lib und .dll Dateien des codecs habe ich zum kompilieren meiner library zur verfügung. Dem Clientprogramm stelle ich danach meine library, die dazugehörige eigene lib datei und die dlls des codecs zur verfügung. Zum kompilieren des client programm brauche ich die .lib dateien des codecs nicht mehr oder?</p>
<p>Jetzt habe ich gelesen das ich genau wie dllexport mit dllimport funktionen aus anderen librarys &quot;importieren&quot; muss. (Warum ich das in normalen Anwendungen die dlls benutzen nicht machen muss hab ich allerdings nicht verstanden.) Nur kann ich ja nicht einfach in den headern des codecs mit compileranweisungen rumbasteln... Wie kann ich das Problem lösen?</p>
<pre><code class="language-cpp">#pragma comment(lib,&quot;ogg.lib&quot;)
#pragma comment(lib,&quot;vorbis.lib&quot;)
#pragma comment(lib,&quot;vorbisfile.lib&quot;)
#pragma comment(lib,&quot;vorbisenc.lib&quot;)

#include &lt;vorbis/codec.h&gt;
#include &lt;ogg/ogg.h&gt;
#include &lt;vorbis/vorbisenc.h&gt;
#include &lt;vorbis/vorbisfile.h&gt;
#include &lt;iostream&gt; 
#include &lt;fstream&gt; 

extern &quot;C&quot; __declspec (dllexport) int SDAudioOpen();

int SDAudioOpen()
{
	FILE *f;
	f = fopen(&quot;test.ogg&quot;,&quot;rb&quot;);
	if(f)
	{
		OggVorbis_File oggFile;

                 //Hier tritt der Speicherzugriffsfehler auf:
		ov_test(f, &amp;oggFile, NULL, 0);
	}

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/482499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/482499</guid><dc:creator><![CDATA[Till]]></dc:creator><pubDate>Wed, 17 Mar 2004 13:41:00 GMT</pubDate></item></channel></rss>