<?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[Probleme mit waveInProc]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich schreibe gerade eine Applikation, die Daten von einer Soundkarte via WaveIn aufnehmen soll. Leider habe ich gerade einige Probleme mit waveInProc.</p>
<p>Ich rufe waveInOpen mit CALLBACK_FUNCTION waveInProc auf.<br />
Die Callback-Funktion habe ich angelegt und diese wird, sobald<br />
der übergebene Puffer von der Soundkarte gefüllt wurde, auch<br />
korrekt aufgerufen.</p>
<p>Leider habe ich in meiner CALLBACK_FUNCTION keinen Zugriff auf<br />
meine Member-Variablen, die ja auch meine WAVEHDR-Daten und Co enthält. <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="😞"
    /><br />
(Ich will ja die Daten von der Soundkarte wieder zurückbekommen).<br />
Ein Aufruf einer anderen Memberfunktion führt auch zu keinem Ergebnis.</p>
<p>Meine Frage nun: Wie bewerkstellige ich, dass ich wie unten angegebenen Beispiel in WaveIn1SendBuffer Zugriff auf string1 und natürlich auch alle anderen Member-Variablen habe?</p>
<p>Danke im voraus</p>
<p>Gruß<br />
kk3003</p>
<pre><code class="language-cpp">public:
CString string1;
string1 = &quot;test&quot;;

[...]

// Open the wave device
void CTestDlg::WaveInOpen()
{
waveInOpen( &amp;hWaveIn1, m_cWaveInDevices1.GetCurSel(), &amp;waveIn1format, (ULONG)waveIn1Proc, 0L, CALLBACK_FUNCTION );

waveInPrepareHeader(hWaveIn1, &amp;waveIn1Header1, sizeof(WAVEHDR));

waveInAddBuffer(hWaveIn1, &amp;waveIn1Header1, sizeof(WAVEHDR));

waveInStart(hWaveIn1);

}

void CALLBACK waveIn1Proc(HWAVEIN hWaveIn1, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2)
{
	switch(uMsg)
	{
		case WIM_CLOSE:
			break;

		case WIM_DATA:
			{
				// pointer to mainDlg
				CTestDlg *pDlg=(CTestDlg*)dwInstance;

				pDlg-&gt;WaveIn1SendBuffer();

			}
			break;

		case WIM_OPEN:
			break;

		default:
			break;
	}
}

void CTestDlg::WaveIn1SendBuffer()
{
MessageBox( string1 ); // ----&gt; Hier kommt ein Access Violation Error :(
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/164393/probleme-mit-waveinproc</link><generator>RSS for Node</generator><lastBuildDate>Thu, 30 Jul 2026 18:04:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/164393.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 07 Nov 2006 19:56:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit waveInProc on Tue, 07 Nov 2006 19:59:21 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich schreibe gerade eine Applikation, die Daten von einer Soundkarte via WaveIn aufnehmen soll. Leider habe ich gerade einige Probleme mit waveInProc.</p>
<p>Ich rufe waveInOpen mit CALLBACK_FUNCTION waveInProc auf.<br />
Die Callback-Funktion habe ich angelegt und diese wird, sobald<br />
der übergebene Puffer von der Soundkarte gefüllt wurde, auch<br />
korrekt aufgerufen.</p>
<p>Leider habe ich in meiner CALLBACK_FUNCTION keinen Zugriff auf<br />
meine Member-Variablen, die ja auch meine WAVEHDR-Daten und Co enthält. <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="😞"
    /><br />
(Ich will ja die Daten von der Soundkarte wieder zurückbekommen).<br />
Ein Aufruf einer anderen Memberfunktion führt auch zu keinem Ergebnis.</p>
<p>Meine Frage nun: Wie bewerkstellige ich, dass ich wie unten angegebenen Beispiel in WaveIn1SendBuffer Zugriff auf string1 und natürlich auch alle anderen Member-Variablen habe?</p>
<p>Danke im voraus</p>
<p>Gruß<br />
kk3003</p>
<pre><code class="language-cpp">public:
CString string1;
string1 = &quot;test&quot;;

[...]

// Open the wave device
void CTestDlg::WaveInOpen()
{
waveInOpen( &amp;hWaveIn1, m_cWaveInDevices1.GetCurSel(), &amp;waveIn1format, (ULONG)waveIn1Proc, 0L, CALLBACK_FUNCTION );

waveInPrepareHeader(hWaveIn1, &amp;waveIn1Header1, sizeof(WAVEHDR));

waveInAddBuffer(hWaveIn1, &amp;waveIn1Header1, sizeof(WAVEHDR));

waveInStart(hWaveIn1);

}

void CALLBACK waveIn1Proc(HWAVEIN hWaveIn1, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2)
{
	switch(uMsg)
	{
		case WIM_CLOSE:
			break;

		case WIM_DATA:
			{
				// pointer to mainDlg
				CTestDlg *pDlg=(CTestDlg*)dwInstance;

				pDlg-&gt;WaveIn1SendBuffer();

			}
			break;

		case WIM_OPEN:
			break;

		default:
			break;
	}
}

void CTestDlg::WaveIn1SendBuffer()
{
MessageBox( string1 ); // ----&gt; Hier kommt ein Access Violation Error :(
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1170728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170728</guid><dc:creator><![CDATA[kk3003]]></dc:creator><pubDate>Tue, 07 Nov 2006 19:59:21 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit waveInProc on Tue, 07 Nov 2006 20:06:05 GMT]]></title><description><![CDATA[<p>weil du 0L übergibst?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170737</guid><dc:creator><![CDATA[MKF]]></dc:creator><pubDate>Tue, 07 Nov 2006 20:06:05 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit waveInProc on Tue, 07 Nov 2006 20:10:03 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>danke schon mal für die prompte Antwort.</p>
<pre><code class="language-cpp">MMRESULT waveInOpen(
  LPHWAVEIN       phwi,      
  UINT_PTR       uDeviceID,  
  LPWAVEFORMATEX pwfx,       
  DWORD_PTR      dwCallback, 
  DWORD_PTR      dwCallbackInstance, 
  DWORD          fdwOpen     
);

/*

dwCallbackInstance

User-instance data passed to the callback mechanism. This parameter is not used with the window callback mechanism.

*/
</code></pre>
<p>Das &quot;0L&quot; steht doch dann für dwInstance. Da ich aber nur eine Instanz habe, sollte doch 0L Ok sein? <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=":confused:"
      alt="😕"
    /></p>
<p>Danke für Info</p>
<p>Gruß´<br />
kk3003</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170741</guid><dc:creator><![CDATA[kk3003]]></dc:creator><pubDate>Tue, 07 Nov 2006 20:10:03 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit waveInProc on Tue, 07 Nov 2006 20:27:11 GMT]]></title><description><![CDATA[<p>du musst <em>this</em> übergeben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170759</guid><dc:creator><![CDATA[helper]]></dc:creator><pubDate>Tue, 07 Nov 2006 20:27:11 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit waveInProc on Tue, 07 Nov 2006 20:39:56 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Perfekt. Man wird echt betriebsblind, wenn es nicht gleich auf das zweite Mal klappt und man nur rumstochert! <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>
<pre><code class="language-cpp">waveInOpen( &amp;hWaveIn1, m_cWaveInDevices1.GetCurSel(), &amp;waveIn1format, (ULONG)waveIn1Proc, (ULONG)this, CALLBACK_FUNCTION );
</code></pre>
<p>Das klappt problemlos!</p>
<p>Danke nochmal.</p>
<p>Gruß<br />
kk3003</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170771</guid><dc:creator><![CDATA[kk3003]]></dc:creator><pubDate>Tue, 07 Nov 2006 20:39:56 GMT</pubDate></item></channel></rss>