<?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[lokalen Hook einrichten -&amp;gt; Compiler spuckt mir unerklärliche Fehlermeldung aus :(]]></title><description><![CDATA[<p>hallo, ich lese mich gerade ein bisschen in das Thema Hooks ein... Nun wollte ich mal einen kleinen lokalen Hook schreiben um die Sache ein wenig zu testen. Dabei kommt immer folgender Fehler:</p>
<pre><code>C:\Dokumente und Einstellungen\G0ddch3n\Eigene Dateien\coding\localKeyboardHook\main.cpp In function `int main(int, char**)':
21 C:\Dokumente und Einstellungen\G0ddch3n\Eigene Dateien\coding\localKeyboardHook\main.cpp invalid conversion from `LRESULT (*)(int, WPARAM, LPARAM)' to `LRESULT (*)(int, WPARAM, LPARAM)' 
21 C:\Dokumente und Einstellungen\G0ddch3n\Eigene Dateien\coding\localKeyboardHook\main.cpp   initializing argument 2 of `HHOOK__* SetWindowsHookExA(int, LRESULT (*)(int, WPARAM, LPARAM), HINSTANCE__*, DWORD)' 
 C:\Dokumente und Einstellungen\G0ddch3n\Eigene Dateien\coding\localKeyboardHook\Makefile.win [Build Error]  [main.o] Error 1
</code></pre>
<p>ich werde daraus einfach nicht schlau <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="😞"
    /> hier mein code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;

using namespace std;

HHOOK aHook;

LRESULT myHookProc(
                   int nCode,
                   WPARAM wParam,
                   LPARAM lParam
                   );

int main(int argc, char *argv[])
{
    aHook = SetWindowsHookEx(
                             WH_KEYBOARD,
                             myHookProc,
                             NULL,
                             GetCurrentThreadId()
                             );
    if( aHook == NULL)
        cout &lt;&lt; &quot;Hook wurde nicht installiert!&quot; &lt;&lt; endl;
    else
        cout &lt;&lt; &quot;Hook wurde erfolgreich installiert!&quot; &lt;&lt; endl;
    UnhookWindowsHookEx(aHook);
}

LRESULT CALLBACK myHookProc(
                   int nCode,
                   WPARAM wParam,
                   LPARAM lParam
                   )
{
                   if( nCode &lt; 0 )
                       return CallNextHookEx(aHook,nCode,wParam,lParam);
                   //tue irgendwas...
                   return CallNextHookEx(aHook,nCode,wParam,lParam);
}
</code></pre>
<p>PS: ich benutze Dev-C++</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/130836/lokalen-hook-einrichten-gt-compiler-spuckt-mir-unerklärliche-fehlermeldung-aus</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Jul 2026 23:48:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/130836.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 27 Dec 2005 22:39:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to lokalen Hook einrichten -&amp;gt; Compiler spuckt mir unerklärliche Fehlermeldung aus :( on Tue, 27 Dec 2005 22:39:49 GMT]]></title><description><![CDATA[<p>hallo, ich lese mich gerade ein bisschen in das Thema Hooks ein... Nun wollte ich mal einen kleinen lokalen Hook schreiben um die Sache ein wenig zu testen. Dabei kommt immer folgender Fehler:</p>
<pre><code>C:\Dokumente und Einstellungen\G0ddch3n\Eigene Dateien\coding\localKeyboardHook\main.cpp In function `int main(int, char**)':
21 C:\Dokumente und Einstellungen\G0ddch3n\Eigene Dateien\coding\localKeyboardHook\main.cpp invalid conversion from `LRESULT (*)(int, WPARAM, LPARAM)' to `LRESULT (*)(int, WPARAM, LPARAM)' 
21 C:\Dokumente und Einstellungen\G0ddch3n\Eigene Dateien\coding\localKeyboardHook\main.cpp   initializing argument 2 of `HHOOK__* SetWindowsHookExA(int, LRESULT (*)(int, WPARAM, LPARAM), HINSTANCE__*, DWORD)' 
 C:\Dokumente und Einstellungen\G0ddch3n\Eigene Dateien\coding\localKeyboardHook\Makefile.win [Build Error]  [main.o] Error 1
</code></pre>
<p>ich werde daraus einfach nicht schlau <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="😞"
    /> hier mein code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;

using namespace std;

HHOOK aHook;

LRESULT myHookProc(
                   int nCode,
                   WPARAM wParam,
                   LPARAM lParam
                   );

int main(int argc, char *argv[])
{
    aHook = SetWindowsHookEx(
                             WH_KEYBOARD,
                             myHookProc,
                             NULL,
                             GetCurrentThreadId()
                             );
    if( aHook == NULL)
        cout &lt;&lt; &quot;Hook wurde nicht installiert!&quot; &lt;&lt; endl;
    else
        cout &lt;&lt; &quot;Hook wurde erfolgreich installiert!&quot; &lt;&lt; endl;
    UnhookWindowsHookEx(aHook);
}

LRESULT CALLBACK myHookProc(
                   int nCode,
                   WPARAM wParam,
                   LPARAM lParam
                   )
{
                   if( nCode &lt; 0 )
                       return CallNextHookEx(aHook,nCode,wParam,lParam);
                   //tue irgendwas...
                   return CallNextHookEx(aHook,nCode,wParam,lParam);
}
</code></pre>
<p>PS: ich benutze Dev-C++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951152</guid><dc:creator><![CDATA[Goddchen]]></dc:creator><pubDate>Tue, 27 Dec 2005 22:39:49 GMT</pubDate></item><item><title><![CDATA[Reply to lokalen Hook einrichten -&amp;gt; Compiler spuckt mir unerklärliche Fehlermeldung aus :( on Tue, 27 Dec 2005 23:01:40 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=2822" rel="nofollow">SideWinder</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=13" rel="nofollow">DOS und Win32-Konsole</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=4" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/951166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951166</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Tue, 27 Dec 2005 23:01:40 GMT</pubDate></item><item><title><![CDATA[Reply to lokalen Hook einrichten -&amp;gt; Compiler spuckt mir unerklärliche Fehlermeldung aus :( on Tue, 27 Dec 2005 23:08:24 GMT]]></title><description><![CDATA[<p>Du hast einmal CALLBACK vergessen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951175</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951175</guid><dc:creator><![CDATA[tipp]]></dc:creator><pubDate>Tue, 27 Dec 2005 23:08:24 GMT</pubDate></item><item><title><![CDATA[Reply to lokalen Hook einrichten -&amp;gt; Compiler spuckt mir unerklärliche Fehlermeldung aus :( on Tue, 27 Dec 2005 23:20:43 GMT]]></title><description><![CDATA[<p>hey danke, hat funktioniert... jetzt hab ich aber ein neues problem... der Hook wird eingerichtet, es wird &quot;Hook wurden erfolgreich installiert!&quot; ausgegeben, jedoch wird myHookProc nie ausgeführt... die funktion sieht jetzt zu testzwecken so aus:</p>
<pre><code class="language-cpp">LRESULT CALLBACK myHookProc(
                   int nCode,
                   WPARAM wParam,
                   LPARAM lParam
                   )
{
                   if( nCode &lt; 0 )
                       return CallNextHookEx(aHook,nCode,wParam,lParam);
                   if(nCode == HC_ACTION)
                   {
                            ofstream fout(&quot;c:\\test.txt&quot;);
                            fout &lt;&lt; &quot;test&quot;;
                   }
                   return CallNextHookEx(aHook,nCode,wParam,lParam);
}
</code></pre>
<p>habs auch schon mit cout und anderen sachen probiert, aba die funktion wird einfach nicht aufgerufen... was ist da faul?</p>
<p>PS: ein GetLastError() direkt vor programmende gibt mir eine 0 zurück, sollte also eigentlich alles glatt laufen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/951177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951177</guid><dc:creator><![CDATA[Goddchen]]></dc:creator><pubDate>Tue, 27 Dec 2005 23:20:43 GMT</pubDate></item><item><title><![CDATA[Reply to lokalen Hook einrichten -&amp;gt; Compiler spuckt mir unerklärliche Fehlermeldung aus :( on Thu, 29 Dec 2005 11:41:41 GMT]]></title><description><![CDATA[<p>tach,</p>
<p>ich glaub dein fehler liegt darin, dass dein hook gestartet wird, geprüft wird ob er läuft, und gleich wieder beendet wird!</p>
<p>ich hatte mal nen hook geproggt, den hatte ich in nem thread gestartet, und im hauptprozess gewartet bis ich den hookthread wieder beende.</p>
<p>bei dir hat der hook gar keine chance, weil er ,wie gesagt, sofort wieder beendet wird nachdem du in startest.</p>
<pre><code class="language-cpp">int main(int argc, char *argv[])
{

    // hook wird gestartet
    aHook = SetWindowsHookEx(
                             WH_KEYBOARD,
                             myHookProc,
                             NULL,
                             GetCurrentThreadId()
                             );

    //handle wird geprüft
    if( aHook == NULL)
        cout &lt;&lt; &quot;Hook wurde nicht installiert!&quot; &lt;&lt; endl;
    else
        cout &lt;&lt; &quot;Hook wurde erfolgreich installiert!&quot; &lt;&lt; endl;

    /////////////////////////////////////////////////////////
    // und hier gleich wieder beendet
    /////////////////////////////////////////////////////////
    UnhookWindowsHookEx(aHook);
}
</code></pre>
<p>dein code ist ansonsten ok.</p>
<p>grüsse!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/952020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/952020</guid><dc:creator><![CDATA[hebbele]]></dc:creator><pubDate>Thu, 29 Dec 2005 11:41:41 GMT</pubDate></item><item><title><![CDATA[Reply to lokalen Hook einrichten -&amp;gt; Compiler spuckt mir unerklärliche Fehlermeldung aus :( on Thu, 29 Dec 2005 11:45:12 GMT]]></title><description><![CDATA[<p>hab mal</p>
<pre><code>for(int i=0;i&lt;5;i++)
    getch();
</code></pre>
<p>vor dem UnhookWindowsHookEx eingefügt, damit sollte das von dir beschriebene problem doch behoben sein und zumindest 5 mal der hook angesprochen werden oder? es passiert aber leider ebenfalls nichts <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>
]]></description><link>https://www.c-plusplus.net/forum/post/952025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/952025</guid><dc:creator><![CDATA[Goddchen]]></dc:creator><pubDate>Thu, 29 Dec 2005 11:45:12 GMT</pubDate></item><item><title><![CDATA[Reply to lokalen Hook einrichten -&amp;gt; Compiler spuckt mir unerklärliche Fehlermeldung aus :( on Thu, 29 Dec 2005 12:15:49 GMT]]></title><description><![CDATA[<p>wenn man schon crossposting betreibt, sollte man schon bei beiden Boards vorbeischauen :xmas1: :<br />
<a href="http://www.buha.info/board/showthread.php?t=50935" rel="nofollow">http://www.buha.info/board/showthread.php?t=50935</a><br />
Zumindest wäre das meine Version - MSDN sagt<br />
<a href="http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookfunctions/keyboardproc.asp" rel="nofollow">http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookfunctions/keyboardproc.asp</a></p>
<blockquote>
<p>The KeyboardProc hook procedure is an application-defined or library-defined callback function used with the SetWindowsHookEx function. The system calls this function whenever an application calls the <strong>GetMessage or PeekMessage</strong> function and there is a keyboard message <strong>(WM_KEYUP or WM_KEYDOWN)</strong> to be processed.</p>
</blockquote>
<p>Du dagegen benutzt Konsole.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/952040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/952040</guid><dc:creator><![CDATA[CDW]]></dc:creator><pubDate>Thu, 29 Dec 2005 12:15:49 GMT</pubDate></item><item><title><![CDATA[Reply to lokalen Hook einrichten -&amp;gt; Compiler spuckt mir unerklärliche Fehlermeldung aus :( on Thu, 29 Dec 2005 12:24:53 GMT]]></title><description><![CDATA[<p>hey, das mit dem doppelposting tut mir echt leid, wusste nicht dass die beiden board irgendwie zusammen gehören oda so... dachte mir ich frage halt gleich mal an mehreren stellen...</p>
<p>zurück zum thema... bedeutet das, dass ich keine chance habe den hook in ner konsolenanwendung zum laufen zu kriegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/952051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/952051</guid><dc:creator><![CDATA[Goddchen]]></dc:creator><pubDate>Thu, 29 Dec 2005 12:24:53 GMT</pubDate></item><item><title><![CDATA[Reply to lokalen Hook einrichten -&amp;gt; Compiler spuckt mir unerklärliche Fehlermeldung aus :( on Sat, 31 Dec 2005 12:01:59 GMT]]></title><description><![CDATA[<p>nein, in ner reinen konsolenanwendung wird's nich funktionieren, jedenfalls nich ohne weiteres.<br />
es könnte funktionieren wenn der hook in ner win32 anwendung erzeugt wird, und das systemweit (dll), dann kannst du auch konsoleneingaben von eingabeaufforderung abfangen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/953331</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/953331</guid><dc:creator><![CDATA[hebbele]]></dc:creator><pubDate>Sat, 31 Dec 2005 12:01:59 GMT</pubDate></item><item><title><![CDATA[Reply to lokalen Hook einrichten -&amp;gt; Compiler spuckt mir unerklärliche Fehlermeldung aus :( on Sat, 31 Dec 2005 12:24:20 GMT]]></title><description><![CDATA[<p>Siehe: How To Hook Console Applications and the Desktop<br />
<a href="http://support.microsoft.com/kb/108232/en-us" rel="nofollow">http://support.microsoft.com/kb/108232/en-us</a></p>
<p>Der KB-Artikel ist zwar alt, aber ich denke, dass er noch immer gültig ist.<br />
Fazit: Console-Applikations können AFAIK nicht so einfach gehooked werden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/953343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/953343</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 31 Dec 2005 12:24:20 GMT</pubDate></item><item><title><![CDATA[Reply to lokalen Hook einrichten -&amp;gt; Compiler spuckt mir unerklärliche Fehlermeldung aus :( on Mon, 02 Jan 2006 12:45:32 GMT]]></title><description><![CDATA[<p>danke leute, ihr habt mir sehr geholfen!<br />
hab mittlerweile sogar nen globalen Hook hinbekommen <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="🙂"
    /><br />
jetzt steh ich aba vor nem neuen problem:<br />
wenn der WH_KEYBOARD-Hook ne Message abfängt, dann kriegt er ja den virtual-key-code. wie krieg ich den jetzt in den korrekten character umgewandelt? also &quot;a&quot; bzw &quot;A&quot; oda &quot;!&quot; bzw &quot;1&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/954670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/954670</guid><dc:creator><![CDATA[Goddchen]]></dc:creator><pubDate>Mon, 02 Jan 2006 12:45:32 GMT</pubDate></item><item><title><![CDATA[Reply to lokalen Hook einrichten -&amp;gt; Compiler spuckt mir unerklärliche Fehlermeldung aus :( on Mon, 02 Jan 2006 12:48:04 GMT]]></title><description><![CDATA[<p>ToAsciiEx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/954675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/954675</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Mon, 02 Jan 2006 12:48:04 GMT</pubDate></item><item><title><![CDATA[Reply to lokalen Hook einrichten -&amp;gt; Compiler spuckt mir unerklärliche Fehlermeldung aus :( on Mon, 02 Jan 2006 23:43:18 GMT]]></title><description><![CDATA[<p>ok, ich hab's mittlerweile so weit hinbekommen, dass alles ganz gut funzt, mit nem globalen low-level keyboard hook... jetzt hab ich nur noch folgendes, mir unerklärliches problem:</p>
<p>wenn ich ein &quot;A&quot; (SHIFT+a) im hook-fenster mache, dann schreibt mir der hook auch ein &quot;A&quot; in die textdatei. mache ich jetzt aber außerhalb des hook-fensters ein &quot;A&quot; (SHIFT+a) dann macht er mir ein &quot;a&quot;... ich komm einfach nicht drauf wieso...</p>
<pre><code class="language-cpp">LRESULT CALLBACK myHookProc(int nCode,WPARAM wParam,LPARAM lParam)
{       
        if( nCode &lt; 0 )
            return CallNextHookEx(aHook,nCode,wParam,lParam);
        if( nCode == HC_ACTION &amp;&amp; wParam==WM_KEYDOWN ) // Only keydown...
        {
            std::ofstream fout(&quot;c:\\test.txt&quot;,fout.app);
            KBDLLHOOKSTRUCT hook = *((KBDLLHOOKSTRUCT*)lParam);
            switch( hook.vkCode )
            {
                    case VK_RETURN:
                         fout &lt;&lt; std::endl;
                         break;
                    case VK_SPACE:
                         fout &lt;&lt; &quot; &quot;;
                         break;
                    default:
                            if( hook.vkCode &gt;= 48 &amp;&amp; hook.vkCode &lt;=90 ) // Only letters and numbers...
                            {
                                BYTE ks[256];
                                GetKeyboardState(ks);
                                WORD w;
                                ToAscii(hook.vkCode,hook.scanCode,ks,&amp;w,0);
                                fout &lt;&lt; char(w);
                                fout.close();
                            }
                            break;
            }
        }
        return CallNextHookEx(aHook,nCode,wParam,lParam);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/955243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/955243</guid><dc:creator><![CDATA[Goddchen]]></dc:creator><pubDate>Mon, 02 Jan 2006 23:43:18 GMT</pubDate></item></channel></rss>