<?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[freeLibrary macht mein programm kaputt]]></title><description><![CDATA[<p>also, ich hab eine dll, die ich so lade:</p>
<pre><code class="language-cpp">windowHookDll=LoadLibrary(&quot;WindowHook.dll&quot;);
</code></pre>
<p>der rückgabewert ist nicht null, und es funktioniert bis zum beenden wies sein soll.</p>
<p>beim beenden rufe ich in meinem fenster WM_DESTROY auf, welches das macht:</p>
<pre><code class="language-cpp">case WM_DESTROY:
{
    uninstallWindowHook();
    FreeLibrary(windowHookDll);
    PostQuitMessage(0);
}
</code></pre>
<p>uninstallWindowHook ist dabei eine funktion aus der dll, die nur UnhookWindowsHookEx aufruft.</p>
<p>ohne FreeLibrary funktioniert alles blendend, aber mit FreeLibrarie bekomm ich einen read error. was ist da los?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/94934/freelibrary-macht-mein-programm-kaputt</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 12:36:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/94934.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Dec 2004 14:19:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to freeLibrary macht mein programm kaputt on Tue, 14 Dec 2004 14:19:16 GMT]]></title><description><![CDATA[<p>also, ich hab eine dll, die ich so lade:</p>
<pre><code class="language-cpp">windowHookDll=LoadLibrary(&quot;WindowHook.dll&quot;);
</code></pre>
<p>der rückgabewert ist nicht null, und es funktioniert bis zum beenden wies sein soll.</p>
<p>beim beenden rufe ich in meinem fenster WM_DESTROY auf, welches das macht:</p>
<pre><code class="language-cpp">case WM_DESTROY:
{
    uninstallWindowHook();
    FreeLibrary(windowHookDll);
    PostQuitMessage(0);
}
</code></pre>
<p>uninstallWindowHook ist dabei eine funktion aus der dll, die nur UnhookWindowsHookEx aufruft.</p>
<p>ohne FreeLibrary funktioniert alles blendend, aber mit FreeLibrarie bekomm ich einen read error. was ist da los?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/673041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/673041</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 14 Dec 2004 14:19:16 GMT</pubDate></item><item><title><![CDATA[Reply to freeLibrary macht mein programm kaputt on Tue, 14 Dec 2004 18:43:21 GMT]]></title><description><![CDATA[<p>weis das niemand?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/673225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/673225</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 14 Dec 2004 18:43:21 GMT</pubDate></item><item><title><![CDATA[Reply to freeLibrary macht mein programm kaputt on Tue, 14 Dec 2004 19:15:37 GMT]]></title><description><![CDATA[<p>Ich hab das in meinem Keyboardhook-Programm ebenfalls so, rufe ne unhook-Funktion in der DLL auf und direkt hinter her FreeLibrary und es funktioniert ohne Probleme.</p>
<p>Bei dir ist es zwar überflüssig zu fragen, aber du bist dir ganz sicher, dass windowHookDll auch wirklich ein handle auf deine hook-dll ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/673251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/673251</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Tue, 14 Dec 2004 19:15:37 GMT</pubDate></item><item><title><![CDATA[Reply to freeLibrary macht mein programm kaputt on Tue, 14 Dec 2004 20:13:39 GMT]]></title><description><![CDATA[<p>ne, da bin ich mir ziemlich sicher:</p>
<pre><code class="language-cpp">long windowProc(HWND hwnd,unsigned int message,unsigned int wParam,unsigned int lParam){
	//...
	static HMODULE windowHookDll;

	switch (message){
		case WM_CREATE:
		{

			windowHookDll=LoadLibrary(&quot;WindowHook.dll&quot;);
			if(!windowHookDll){
                                 //...
				return true;
			}
            //paar funktionen laden
        }
        break;
        //...
		case WM_DESTROY:
		{
			uninstallWindowHook();
			FreeLibrary(windowHookDll);
			PostQuitMessage(0);
		}
	}
</code></pre>
<p>könnte natürlich sein, dass durch irgendwelche strahlung die bits alle auf magische weise umspringen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>//edit fehler beim kopieren<br />
//edit2 wieder zuviel bzw zuwenig rausgeschnitten-.-</p>
]]></description><link>https://www.c-plusplus.net/forum/post/673285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/673285</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 14 Dec 2004 20:13:39 GMT</pubDate></item><item><title><![CDATA[Reply to freeLibrary macht mein programm kaputt on Tue, 14 Dec 2004 20:08:03 GMT]]></title><description><![CDATA[<p>Wie und wo ist sie denn definiert? Ist sie ungleich null vor dem aufruf von FreeLibrary?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/673297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/673297</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Tue, 14 Dec 2004 20:08:03 GMT</pubDate></item><item><title><![CDATA[Reply to freeLibrary macht mein programm kaputt on Tue, 14 Dec 2004 20:18:03 GMT]]></title><description><![CDATA[<p>oben steht der code(ich hasse meine müdigkeit, immer wien spaten falsch kopiert-.-)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/673306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/673306</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 14 Dec 2004 20:18:03 GMT</pubDate></item><item><title><![CDATA[Reply to freeLibrary macht mein programm kaputt on Tue, 14 Dec 2004 21:56:04 GMT]]></title><description><![CDATA[<p>Mal GetLastError probiert? Vielleicht irgendein Fehler in der DllMain, die ja bei FreeLibrary aufgerufen wird, wenn der Referenzzähler wieder 0 ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/673364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/673364</guid><dc:creator><![CDATA[rdtsc]]></dc:creator><pubDate>Tue, 14 Dec 2004 21:56:04 GMT</pubDate></item><item><title><![CDATA[Reply to freeLibrary macht mein programm kaputt on Wed, 15 Dec 2004 07:53:26 GMT]]></title><description><![CDATA[<p>wenn return true in der dllmain ein fehler ist... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/673462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/673462</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Wed, 15 Dec 2004 07:53:26 GMT</pubDate></item><item><title><![CDATA[Reply to freeLibrary macht mein programm kaputt on Wed, 15 Dec 2004 11:52:56 GMT]]></title><description><![CDATA[<p>Hi,<br />
setz doch zu Testzwecken einfach mal nen Sleep(3000) hinter den Aufruf von uninstallWindowHook und schau ob du dann noch den Fehler hast.</p>
<p>MfG Spacelord</p>
]]></description><link>https://www.c-plusplus.net/forum/post/673593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/673593</guid><dc:creator><![CDATA[Spacelord]]></dc:creator><pubDate>Wed, 15 Dec 2004 11:52:56 GMT</pubDate></item><item><title><![CDATA[Reply to freeLibrary macht mein programm kaputt on Wed, 15 Dec 2004 12:33:20 GMT]]></title><description><![CDATA[<p>keine änderung...<br />
kann es sein, dass es vielleicht zufälligerweise an meiner hook funktion selber liegt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/673628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/673628</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Wed, 15 Dec 2004 12:33:20 GMT</pubDate></item><item><title><![CDATA[Reply to freeLibrary macht mein programm kaputt on Wed, 15 Dec 2004 12:40:11 GMT]]></title><description><![CDATA[<p>dort steht aber doch nix aufregendes drin nur UnhookWindowsHookEx() und solche scherze. oder meinst du die hook proc an sich. wenn ja zeig sie halt mal.</p>
<p>SirLant schrieb:</p>
<blockquote>
<p>Bei dir ist es zwar überflüssig zu fragen, aber du bist dir ganz sicher, dass windowHookDll auch wirklich ein handle auf deine hook-dll ist?</p>
</blockquote>
<p>so wirklich hast du diese frage noch nicht beantwortet. ist der wert bei wm_destroy noch gültig bzw. der selbe wie in wm_create.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/673634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/673634</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Wed, 15 Dec 2004 12:40:11 GMT</pubDate></item><item><title><![CDATA[Reply to freeLibrary macht mein programm kaputt on Wed, 15 Dec 2004 12:47:39 GMT]]></title><description><![CDATA[<p>Warum machst du denn nicht mal zum Test eine minimale Hook-Proc?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/673639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/673639</guid><dc:creator><![CDATA[super]]></dc:creator><pubDate>Wed, 15 Dec 2004 12:47:39 GMT</pubDate></item><item><title><![CDATA[Reply to freeLibrary macht mein programm kaputt on Wed, 15 Dec 2004 13:03:40 GMT]]></title><description><![CDATA[<p>fehler gelöst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<p>an windowHookDll lags nicht, der wert bleibt auch die ganze zeit über der gleiche.</p>
<p>es lag wie ich vermutet hab, and er proc, und zwar subclassed die immer das aktive fenster, und ich hab versucht den hook zu killen, als noch ein paar fenster subclassed waren <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>falls es immer noch interessiert, hier die funktion, stilistisch bin ich aber nicht sehr stolz drauf^^</p>
<pre><code class="language-cpp">//messageTarget ist eine globale variable mit dem HWND des Zielfensters, welches die nachrichten erhalten soll

LRESULT CALLBACK hookProc(int nCode,WPARAM wParam,LPARAM lParam){
    //das aktuelle gesubclasste window
    static HWND subclassedWindow=0;

	//die nachricht
	CWPRETSTRUCT* message=(CWPRETSTRUCT*)lParam;

	//ist der hook deaktiviert, aussteigen
	if(!messageTarget){
		if(subclassedWindow){
			removeSubclass(subclassedWindow);
		}
		return CallNextHookEx (hook, nCode, wParam, lParam);
	}

	//das zielfenster darf nicht gehookt werden
	if(message-&gt;hwnd==messageTarget){
		return CallNextHookEx (hook, nCode, wParam, lParam);
	}

	//sonst nachricht testen
    if(nCode==HC_ACTION&amp;&amp;message-&gt;message==WM_ACTIVATE){

		if(LOWORD(message-&gt;wParam)==WA_CLICKACTIVE||LOWORD(message-&gt;wParam)==WA_ACTIVE){
			//erst aufräumen
			if(subclassedWindow){
				removeSubclass(subclassedWindow);
			}

			subclassedWindow=message-&gt;hwnd;
			subclass(subclassedWindow,messageTarget);
		}
		else
		{
			//fenster wird inaktiv:subclass entfernen
			removeSubclass(subclassedWindow);
			subclassedWindow=0;
        }
    }
    return CallNextHookEx (hook, nCode, wParam, lParam);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/673647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/673647</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Wed, 15 Dec 2004 13:03:40 GMT</pubDate></item></channel></rss>