<?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[decodieren schlägt fehl - mpglib]]></title><description><![CDATA[<p>Hallo</p>
<p>ich habe mir die &quot;mpglib&quot; runtergeladen um damit MP3's zu decodieren.<br />
Schon am ersten Beispiel hackts bei mir <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>
<p>der beispielcode:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &quot;mpglibdll.h&quot;

HINSTANCE    hmpglibdll;
INITMP3      InitMP3;
EXITMP3      ExitMP3;
DECODEMP3    decodeMP3;

char buf[16384];
struct mpstr mp;

int main (void)
{
	int size;
	char out[8192];
	int len,ret;

	hmpglibdll = LoadLibrary(&quot;mpglib.dll&quot;);

	if (!hmpglibdll)
		return (NO_DLL_FOUND);

	InitMP3   = (INITMP3)   GetProcAddress(hmpglibdll, TEXT_INITMP3);
	ExitMP3   = (EXITMP3)   GetProcAddress(hmpglibdll, TEXT_EXITMP3);
	decodeMP3 = (DECODEMP3) GetProcAddress(hmpglibdll, TEXT_DECODEMP3);

	InitMP3(&amp;mp);

	while( !eof() )
	{
		len = read(0,buf,16384);
		if(len &lt;= 0)
			break;
		ret = decodeMP3(&amp;mp,buf,len,out,8192,&amp;size);
		while(ret == MP3_OK)
		{
			write(1,out,size);
			ret = decodeMP3(&amp;mp,NULL,0,out,8192,&amp;size);
		}
	}

	ExitMP3(&amp;mp);
	FreeLibrary(hmpglibdll);

	return (0);
}
</code></pre>
<p>das wollte ich so umschreiben, dass es mit dateien statt der ein und ausgabe arbeitet</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &quot;mpglibdll.h&quot;
#include &lt;stdio.h&gt;
#include &lt;fstream&gt;

HINSTANCE    hmpglibdll;
INITMP3      InitMP3;
EXITMP3      ExitMP3;
DECODEMP3    decodeMP3;

char buf[16384];
struct mpstr mp;

int main (void)
{
	int size;
	char out[8192];
	int ret;
	DWORD len;

	hmpglibdll = LoadLibrary(&quot;mpglib.dll&quot;);

	if (!hmpglibdll)
		return (-1);

	InitMP3   = (INITMP3)   GetProcAddress(hmpglibdll, TEXT_INITMP3);
	ExitMP3   = (EXITMP3)   GetProcAddress(hmpglibdll, TEXT_EXITMP3);
	decodeMP3 = (DECODEMP3) GetProcAddress(hmpglibdll, TEXT_DECODEMP3);

	InitMP3(&amp;mp);

	std::fstream infile(&quot;E:\\input.mp3&quot;, std::ios::binary | std::ios::in);
	std::fstream outfile(&quot;E:\\output.wav&quot;, std::ios::binary | std::ios::out);

	while(!infile.eof())
	{
		len = 16384;
		infile.read(buf, 16384);

		ret = decodeMP3(&amp;mp,buf,len,out,8192,&amp;size);
		while(ret == MP3_OK)
		{
			outfile.write(out, size);
			ret = decodeMP3(&amp;mp,NULL,0,out,8192,&amp;size);
		}
	}

	ExitMP3(&amp;mp);
	FreeLibrary(hmpglibdll);

	return (0);
}
</code></pre>
<p>allerdings bricht die funktion ab und ich habe schrott in der datei...<br />
was hab ich falsch gemacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/234430/decodieren-schlägt-fehl-mpglib</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 11:00:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/234430.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Feb 2009 20:10:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to decodieren schlägt fehl - mpglib on Tue, 17 Feb 2009 20:10:51 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ich habe mir die &quot;mpglib&quot; runtergeladen um damit MP3's zu decodieren.<br />
Schon am ersten Beispiel hackts bei mir <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>
<p>der beispielcode:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &quot;mpglibdll.h&quot;

HINSTANCE    hmpglibdll;
INITMP3      InitMP3;
EXITMP3      ExitMP3;
DECODEMP3    decodeMP3;

char buf[16384];
struct mpstr mp;

int main (void)
{
	int size;
	char out[8192];
	int len,ret;

	hmpglibdll = LoadLibrary(&quot;mpglib.dll&quot;);

	if (!hmpglibdll)
		return (NO_DLL_FOUND);

	InitMP3   = (INITMP3)   GetProcAddress(hmpglibdll, TEXT_INITMP3);
	ExitMP3   = (EXITMP3)   GetProcAddress(hmpglibdll, TEXT_EXITMP3);
	decodeMP3 = (DECODEMP3) GetProcAddress(hmpglibdll, TEXT_DECODEMP3);

	InitMP3(&amp;mp);

	while( !eof() )
	{
		len = read(0,buf,16384);
		if(len &lt;= 0)
			break;
		ret = decodeMP3(&amp;mp,buf,len,out,8192,&amp;size);
		while(ret == MP3_OK)
		{
			write(1,out,size);
			ret = decodeMP3(&amp;mp,NULL,0,out,8192,&amp;size);
		}
	}

	ExitMP3(&amp;mp);
	FreeLibrary(hmpglibdll);

	return (0);
}
</code></pre>
<p>das wollte ich so umschreiben, dass es mit dateien statt der ein und ausgabe arbeitet</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &quot;mpglibdll.h&quot;
#include &lt;stdio.h&gt;
#include &lt;fstream&gt;

HINSTANCE    hmpglibdll;
INITMP3      InitMP3;
EXITMP3      ExitMP3;
DECODEMP3    decodeMP3;

char buf[16384];
struct mpstr mp;

int main (void)
{
	int size;
	char out[8192];
	int ret;
	DWORD len;

	hmpglibdll = LoadLibrary(&quot;mpglib.dll&quot;);

	if (!hmpglibdll)
		return (-1);

	InitMP3   = (INITMP3)   GetProcAddress(hmpglibdll, TEXT_INITMP3);
	ExitMP3   = (EXITMP3)   GetProcAddress(hmpglibdll, TEXT_EXITMP3);
	decodeMP3 = (DECODEMP3) GetProcAddress(hmpglibdll, TEXT_DECODEMP3);

	InitMP3(&amp;mp);

	std::fstream infile(&quot;E:\\input.mp3&quot;, std::ios::binary | std::ios::in);
	std::fstream outfile(&quot;E:\\output.wav&quot;, std::ios::binary | std::ios::out);

	while(!infile.eof())
	{
		len = 16384;
		infile.read(buf, 16384);

		ret = decodeMP3(&amp;mp,buf,len,out,8192,&amp;size);
		while(ret == MP3_OK)
		{
			outfile.write(out, size);
			ret = decodeMP3(&amp;mp,NULL,0,out,8192,&amp;size);
		}
	}

	ExitMP3(&amp;mp);
	FreeLibrary(hmpglibdll);

	return (0);
}
</code></pre>
<p>allerdings bricht die funktion ab und ich habe schrott in der datei...<br />
was hab ich falsch gemacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1665491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1665491</guid><dc:creator><![CDATA[em_pe_drei]]></dc:creator><pubDate>Tue, 17 Feb 2009 20:10:51 GMT</pubDate></item></channel></rss>