<?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[Absturz bei DestroyWindow() nach AfxSetResourceHandle()]]></title><description><![CDATA[<p>ich hatte bisher das problem, dass DoModal() in meinem programm nicht richtig ausgeführt wurde, da die funktion, welche das dialogfeld starten sollte, von einer DLL aufgerufen wurde. GetLastError() hat mir dann 'ERROR_RESOURCE_DATA_NOT_FOUND' zurück gegeben.</p>
<p>ich habe jetzt der DLL das resource handle von meinem programm übergeben. in der DLL rufe ich dann 'AfxSetResourceHandle(iResHandle)' auf.</p>
<p>Jetzt kann ich das dialogfeld in meiner applikation starten.</p>
<p>wenn ich jetzt das dialogfeld schließe, tritt ein anderer fehler auf:</p>
<pre><code>file: wincore.cpp
line: 1008
</code></pre>
<p>der fehler ist in der funktion 'CWnd::DestroyWindow()' im letzten assert:</p>
<pre><code class="language-cpp">#ifdef _DEBUG
			ASSERT(m_hWnd == hWndOrig);
#endif
</code></pre>
<p>warum tritt dieser fehler jetzt auf ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/179456/absturz-bei-destroywindow-nach-afxsetresourcehandle</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 10:04:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/179456.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 22 Apr 2007 07:23:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Absturz bei DestroyWindow() nach AfxSetResourceHandle() on Sun, 22 Apr 2007 07:23:42 GMT]]></title><description><![CDATA[<p>ich hatte bisher das problem, dass DoModal() in meinem programm nicht richtig ausgeführt wurde, da die funktion, welche das dialogfeld starten sollte, von einer DLL aufgerufen wurde. GetLastError() hat mir dann 'ERROR_RESOURCE_DATA_NOT_FOUND' zurück gegeben.</p>
<p>ich habe jetzt der DLL das resource handle von meinem programm übergeben. in der DLL rufe ich dann 'AfxSetResourceHandle(iResHandle)' auf.</p>
<p>Jetzt kann ich das dialogfeld in meiner applikation starten.</p>
<p>wenn ich jetzt das dialogfeld schließe, tritt ein anderer fehler auf:</p>
<pre><code>file: wincore.cpp
line: 1008
</code></pre>
<p>der fehler ist in der funktion 'CWnd::DestroyWindow()' im letzten assert:</p>
<pre><code class="language-cpp">#ifdef _DEBUG
			ASSERT(m_hWnd == hWndOrig);
#endif
</code></pre>
<p>warum tritt dieser fehler jetzt auf ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1270907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1270907</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Sun, 22 Apr 2007 07:23:42 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei DestroyWindow() nach AfxSetResourceHandle() on Mon, 23 Apr 2007 07:06:46 GMT]]></title><description><![CDATA[<p>Du darfst nicht einfach AgxSetResourceHandle aufrufen. Denn dadurch manipulierst Du ja auch das aufrufende Programm.</p>
<p>Der korrekte Weg ist es<br />
AFX_MANAGE_STATE(AfxGetStaticModuleState( ))<br />
zu verwenden.</p>
<p>Das steht<br />
1. In den TN011 <a href="http://msdn2.microsoft.com/en-us/library/zfz4xb9a(VS.80).aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/zfz4xb9a(VS.80).aspx</a><br />
2. Steht es im Code das der Wizard erzeugt hat!</p>
<p>Zu Deinem Problem. Ich vermute, dass zu diesem Zeitpunkt der Speicherblock des CWnd, dass hier zerstört werden soll schon cnit mehr gültig ist.</p>
<p>Schau mal den Stacktrace an!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1271492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271492</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 23 Apr 2007 07:06:46 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei DestroyWindow() nach AfxSetResourceHandle() on Mon, 23 Apr 2007 17:59:42 GMT]]></title><description><![CDATA[<p>danke,</p>
<p>das makro habe ich ja sogar verwendet. aber der fehler tritt ja auch nicht in der DLL auf, sondern in der applikation.</p>
<p>die funktion in der applikation, welche ein dialogfeld erzeugen soll, wird von der DLL aufgerufen.</p>
<p>hoffe ihr versteht mich richtig.</p>
<p>ich habe jetzt in meiner DLL '_USRDLL' definiert, in meinem programm habe ich '_WINDLL' definiert (jeweils unter präprozessordefinitionen).<br />
das hat jedoch nichts genützt.</p>
<p>'_AFXDLL' hatte ich bereits definiert in DLL und programm, da ich beide sonst nicht kompilieren konnte.</p>
<p>bin da echt ratlos !?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1271941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271941</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Mon, 23 Apr 2007 17:59:42 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei DestroyWindow() nach AfxSetResourceHandle() on Thu, 26 Apr 2007 19:58:35 GMT]]></title><description><![CDATA[<p>ich versuche es jetzt mit 'LoadResource()'. Mein bisheriger code sieht so aus:</p>
<pre><code class="language-cpp">HRSRC hSrcFile = FindResource(hInst, MAKEINTRESOURCE(IDD_OBJECT_EDITOR), RT_DIALOG); 

if (hSrcFile != NULL)
{ 
	LoadResource(hInst, hSrcFile); 

	CObjectEditor oObjEdit;

	oObjEdit.DoModal();

	DWORD dErr = GetLastError();
}
</code></pre>
<p>hInst ist ein gültiges Modulhandle auf meine Applikation. der code ist ein ausschnitt von meiner funktion, welche innerhalb der applikation von der DLL aufgerufen wird.</p>
<p>GetLastError() liefert mir wie gehabt 'ERROR_RESOURCE_DATA_NOT_FOUND'.</p>
<p>ich habe auch eine bitmapresource in meinem dialog. ich habe auch die bereits versucht zu laden, ohne erfolg.</p>
<p>wende ich LoadResource() falsch an ?? oder ist der weg ganz verkehrt ?</p>
<p>(ich gehe ähnlich wie in diesem <a href="http://www.codeproject.com/dll/The_DLL_Hell.asp" rel="nofollow">beispiel</a> vor. bei den kommentaren hat jemand das selbe problem, er öffnet das dialogfeld aber aus der DLL heraus)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274213</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Thu, 26 Apr 2007 19:58:35 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei DestroyWindow() nach AfxSetResourceHandle() on Fri, 27 Apr 2007 05:55:20 GMT]]></title><description><![CDATA[<p>Ich habe noch nicht verstanden, wo den die Dialog Ressource liegt. In der EXE oder in der DLL.<br />
Du musst dann das entsprechende hInst Handle auch bereitstellen, dann geht das auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274326</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 27 Apr 2007 05:55:20 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei DestroyWindow() nach AfxSetResourceHandle() on Fri, 27 Apr 2007 15:26:37 GMT]]></title><description><![CDATA[<p>das handle wird korrekt bereitgestellt, es ist das handle auf meine applikation.<br />
ich habe das problem seit dem ich die laufzeitbibliothek auf <em>Multithreaded-DLL (/MD)</em> gestellt habe. vorher hatte ich <em>Multithreaded (/MT)</em> verwendet.</p>
<p>ich habe den ganzen aufbau gezeichnet: <a href="http://gayfiles.de/cpp/verlauf.jpg" rel="nofollow">AUFBAU</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274711</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Fri, 27 Apr 2007 15:26:37 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei DestroyWindow() nach AfxSetResourceHandle() on Fri, 27 Apr 2007 16:45:25 GMT]]></title><description><![CDATA[<p>1. Alle Module müssen die gleiche MFC und die gleiche CRT verwenden. Am besten Multithreaded DLL<br />
2. Auch im Callback in der Exe musst Du AFX_MANAGE_STATE verwenden, damit hier die Ressource auch wieder gefunden wird.</p>
<p>Grundsätzlich gilt das für alle Callbacks die Modulübergreifend angesprochen werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274747</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 27 Apr 2007 16:45:25 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei DestroyWindow() nach AfxSetResourceHandle() on Fri, 27 Apr 2007 17:10:11 GMT]]></title><description><![CDATA[<p>ich verwende MFC in einer statischen bibliothek, sowohl in DLL als auch in der applikation.</p>
<p>AFX_MANAGE_STATE habe ich jetzt in allen callbacks nachgerüstet. es tritt jetzt allerdings ein anderer fehler auf:</p>
<p>in CDialog::DoModal()</p>
<pre><code class="language-cpp">INT_PTR CDialog::DoModal()
{
	// can be constructed with a resource template or InitModalIndirect
	ASSERT(m_lpszTemplateName != NULL || m_hDialogTemplate != NULL ||
		m_lpDialogTemplate != NULL);

	// load resource as necessary
	LPCDLGTEMPLATE lpDialogTemplate = m_lpDialogTemplate;
	HGLOBAL hDialogTemplate = m_hDialogTemplate;

	// Der Fehler triit in der NÄCHSTEN ZEILE auf !!:
	HINSTANCE hInst = AfxGetResourceHandle();

	// ...
}
</code></pre>
<p>sorry, brauchst du vielleicht noch andere informationen ?? ich bin echt überfragt bei diesem problem <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>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274758</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Fri, 27 Apr 2007 17:10:11 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei DestroyWindow() nach AfxSetResourceHandle() on Fri, 27 Apr 2007 18:31:01 GMT]]></title><description><![CDATA[<p>Und wo kracht es jetzt?</p>
<p>Dir ist klar, dass Du bei Verwendung der statischen CRT keine Zeiger mehr in anderen Modulen freigeben darfst und dass Du keine CString Objekte und stl Objekte über Modulgrenzen austatauschen darfst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274825</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 27 Apr 2007 18:31:01 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei DestroyWindow() nach AfxSetResourceHandle() on Sat, 28 Apr 2007 06:37:53 GMT]]></title><description><![CDATA[<p>nein, was wusste ich bisher nicht.</p>
<p>Bei verwendung von <em>MFC in Shared DLL</em> und <em>Win-StandardBibliothek</em> tritt der selbe fehler auf.</p>
<p>in der zeile <strong>HINSTANCE hInst = AfxGetResourceHandle();</strong> hat er das problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274948</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Sat, 28 Apr 2007 06:37:53 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei DestroyWindow() nach AfxSetResourceHandle() on Sat, 28 Apr 2007 08:29:11 GMT]]></title><description><![CDATA[<p>mir ist gerade etwas aufgefallen:</p>
<p>befor ich 'AFX_MANAGE_STATE(AfxGetStaticModuleState())' aufrufe, kann ich 'AfxGetResourceHandle()' problemlos verwendet. nach dem aufruf bekomme ich den fehler bei 'AfxGetResourceHandle()'.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274979</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Sat, 28 Apr 2007 08:29:11 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei DestroyWindow() nach AfxSetResourceHandle() on Sat, 28 Apr 2007 10:03:24 GMT]]></title><description><![CDATA[<p>es klappt jetzt:</p>
<p>ich benutze 'Multithreaded (/MT)' mit statischer bibliothek.</p>
<p>ich habe das mit sicherheit schon bei mtesten eingestellt gehabt. vermutlich habe ich einige projekteinstellungen verändert und durch die kombination der geänderten einstellungen lief es nicht.</p>
<p>danke dir !!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1275037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1275037</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Sat, 28 Apr 2007 10:03:24 GMT</pubDate></item></channel></rss>