<?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[TWAIN-Scantool stürzt ab]]></title><description><![CDATA[<p>Ich brauche eure Hilfe bei einem etwas blöden Problem.<br />
Meine Anwendung schmiert mir mit der Meldung:</p>
<blockquote>
<p>&quot;Die Anweisung in &quot;0x7c921e58&quot; verweist auf Speicher in &quot;0x2d53465c&quot;.<br />
Der Vorgang &quot;read&quot; konnte nicht auf dem Speicher durchgeführt werden.</p>
</blockquote>
<p>beim Beenden ab.</p>
<p>Mit dem Debugger habe ich rausgefunden, dass in der<br />
afxstate.cpp beim Programmstart auf folgende Zeile<br />
verwiesen wird:</p>
<pre><code class="language-cpp">#undef AfxWndProc
LRESULT CALLBACK
AfxWndProcBase(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
	AFX_MANAGE_STATE(_afxBaseModuleState.GetData());
-&gt;&gt;&gt;	return AfxWndProc(hWnd, nMsg, wParam, lParam);
}
</code></pre>
<p>Fahre ich mit dem Debugger dann fort, öffnet sich meine Anwendung.<br />
Ich kann sie auch ganz normal bedienen. Lediglich beim Beenden stelle<br />
ich dann wieder Probleme fest:</p>
<p>Und zwar in der free.c an dieser Stelle</p>
<pre><code class="language-cpp">#endif  /* CRTDLL */
        else    //  __active_heap == __SYSTEM_HEAP
#endif  /* _WIN64 */
        {
            HeapFree(_crtheap, 0, pBlock);
        }
--&gt;&gt;&gt; }
</code></pre>
<p>Ich bin absolut ratlos wie ich nun vorgehen soll.<br />
Es handelt sich um ein Programm, dass den Scanner<br />
anspricht (TWAIN).</p>
<p>Es wird beim Programmstart der einzige vorhandene Scanner<br />
autom. gewählt. Schließe ich den Scanner nicht an den PC<br />
an, stürzt mir auch die Anwendung nicht ab.</p>
<p>Auch im Debugger sieht dann alles i.O. aus. <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/195173/twain-scantool-stürzt-ab</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Apr 2026 20:24:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/195173.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 15 Oct 2007 08:13:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to TWAIN-Scantool stürzt ab on Mon, 15 Oct 2007 08:13:33 GMT]]></title><description><![CDATA[<p>Ich brauche eure Hilfe bei einem etwas blöden Problem.<br />
Meine Anwendung schmiert mir mit der Meldung:</p>
<blockquote>
<p>&quot;Die Anweisung in &quot;0x7c921e58&quot; verweist auf Speicher in &quot;0x2d53465c&quot;.<br />
Der Vorgang &quot;read&quot; konnte nicht auf dem Speicher durchgeführt werden.</p>
</blockquote>
<p>beim Beenden ab.</p>
<p>Mit dem Debugger habe ich rausgefunden, dass in der<br />
afxstate.cpp beim Programmstart auf folgende Zeile<br />
verwiesen wird:</p>
<pre><code class="language-cpp">#undef AfxWndProc
LRESULT CALLBACK
AfxWndProcBase(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
	AFX_MANAGE_STATE(_afxBaseModuleState.GetData());
-&gt;&gt;&gt;	return AfxWndProc(hWnd, nMsg, wParam, lParam);
}
</code></pre>
<p>Fahre ich mit dem Debugger dann fort, öffnet sich meine Anwendung.<br />
Ich kann sie auch ganz normal bedienen. Lediglich beim Beenden stelle<br />
ich dann wieder Probleme fest:</p>
<p>Und zwar in der free.c an dieser Stelle</p>
<pre><code class="language-cpp">#endif  /* CRTDLL */
        else    //  __active_heap == __SYSTEM_HEAP
#endif  /* _WIN64 */
        {
            HeapFree(_crtheap, 0, pBlock);
        }
--&gt;&gt;&gt; }
</code></pre>
<p>Ich bin absolut ratlos wie ich nun vorgehen soll.<br />
Es handelt sich um ein Programm, dass den Scanner<br />
anspricht (TWAIN).</p>
<p>Es wird beim Programmstart der einzige vorhandene Scanner<br />
autom. gewählt. Schließe ich den Scanner nicht an den PC<br />
an, stürzt mir auch die Anwendung nicht ab.</p>
<p>Auch im Debugger sieht dann alles i.O. aus. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1385336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1385336</guid><dc:creator><![CDATA[Luv]]></dc:creator><pubDate>Mon, 15 Oct 2007 08:13:33 GMT</pubDate></item><item><title><![CDATA[Reply to TWAIN-Scantool stürzt ab on Mon, 15 Oct 2007 08:56:56 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin mir nicht 100% sicher, aber ich vermute das Problem entsteht<br />
durch meinen Code, der mir die Drucker enumerieren soll:</p>
<pre><code class="language-cpp">UINT CPrinterAccess::EnumPrinter(IEnumPrinter* pEnumPrinter) const
{
DWORD nSize;
	DWORD nPrinterCount;
	BYTE* prInfo = new BYTE[nSize];
	PRINTER_INFO_4* pPrinterInfo = NULL;

	::EnumPrinters(PRINTER_ENUM_FAVORITE | PRINTER_ENUM_LOCAL, NULL, 4, NULL, 0, &amp;nSize, &amp;nPrinterCount);

	if (pEnumPrinter)
	{
		if (::EnumPrinters(PRINTER_ENUM_FAVORITE | PRINTER_ENUM_LOCAL, NULL, 4, prInfo, nSize, &amp;nSize, &amp;nPrinterCount))
		{
			pPrinterInfo = (PRINTER_INFO_4*)prInfo;
			for (DWORD i = 0; i &lt; nPrinterCount; i++)
				if (!pEnumPrinter-&gt;OnEnumPrinterName(pPrinterInfo[i].pPrinterName))
					break;
		}

		delete[] prInfo;
	}

	return nPrinterCount;
}
</code></pre>
<p>Wenn ich diesen Code verwende, um nur loakle Drucker zu suchen, habe ich<br />
keine Probleme mit meiner Anwendung:</p>
<pre><code class="language-cpp">UINT CPrinterAccess::EnumPrinter(IEnumPrinter* pEnumPrinter) const
{
DWORD nSize;
DWORD nPrinterCount;
	::EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 1, NULL, 0, &amp;nSize, &amp;nPrinterCount);

	if (pEnumPrinter)
	{
		BYTE* prInfo = new BYTE[nSize];
		if (::EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 1, prInfo, nSize, &amp;nSize, &amp;nPrinterCount))
		{
			PRINTER_INFO_1* pPrinterInfo = (PRINTER_INFO_1*)prInfo;
			for (DWORD i = 0; i &lt; nPrinterCount; i++)
				if (!pEnumPrinter-&gt;OnEnumPrinterName(pPrinterInfo[i].pName))
					break;
		}

		delete[] prInfo;
	}
	return nPrinterCount;
}
</code></pre>
<p>Ich kann jedoch keinen Fehler dabei erkennen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1385361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1385361</guid><dc:creator><![CDATA[Luv]]></dc:creator><pubDate>Mon, 15 Oct 2007 08:56:56 GMT</pubDate></item><item><title><![CDATA[Reply to TWAIN-Scantool stürzt ab on Mon, 15 Oct 2007 10:46:05 GMT]]></title><description><![CDATA[<p>Hat sich jemand von euch mal die Zeit nehmen können zu prüfen,<br />
ob ich die Funktion mit PRINTER_INFO_4* überhaupt richtig verwende?</p>
<p>Ich würde mich über Feedback freuen, da ich irgendwie den Wald<br />
vor lauter Bäumen nicht mehr sehe... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Muss ich noch irgendwo ein free oder delete setzen?<br />
Und warum meckert Windows wegen &quot;read&quot; in irgendeinem Speicherbereich rum <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1385448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1385448</guid><dc:creator><![CDATA[Luv]]></dc:creator><pubDate>Mon, 15 Oct 2007 10:46:05 GMT</pubDate></item></channel></rss>