Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Dll Problem!!!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.11.2003, 18:08 Uhr
erpelqueen
Entlein


Hi, ich wollte eine Dll schreiben, erstmal ohne ein Prohekt nebenbei:

Ich erstelle eine cpp und header datei:

C++:
#include "HookDll.h"
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
        return 1;
}

LRESULT CALLBACK MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    MOUSEHOOKSTRUCT mhs = *(MOUSEHOOKSTRUCT*)lParam;
    LONG lPoint = MAKELONG((WORD)mhs.pt.x, (WORD)mhs.pt.y);
    HWND MyWin = FindWindow("TForm1", "Form1");
    if (MyWin != NULL) //Das Fenster an das die Botschaft geschickt wird.
        SendMessage(MyWin, WM_MOUSEMOVE, wParam, (LPARAM)lPoint);
    return CallNextHookEx(0, nCode, wParam, lParam);
}

__declspec(dllexport) BOOL UninstallHook(HHOOK hook)
{
    return UnhookWindowsHookEx(hook); //Hook deinstallieren.
}

__declspec(dllexport) HHOOK InstallHook(HHOOK hook)
{    //Hook installieren.
    return SetWindowsHookEx(WH_MOUSE,(HOOKPROC)MouseHookProc,HInstance, 0);
}


So, beim erstellen kommt unbekanntes Symbaol: HInstance(letzte Zeile!)
Warum?
--
TSchöööööööö ,
How dy How, Ranger Joe
--------------------------------------
www.erpelstore.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.11.2003, 18:39 Uhr
Spacelord
Hoffnungsloser Fall


Mal ganz ehrlich erpel,
ich hatte schon meine Probleme mich bei deinem anderen Thread zurückzuhalten!Von wegen du wärst etwas eingerostet und so weiter !
Aber jetzt muss ich dir erstmal sagen dass du das Ganze fein kopiert hast !!
Wirklich gaaaanz toll gemacht! Unglücklicherweise verstehst du nicht die Bohne von "deinem" Code.
Wo bitte deklarierst du den eine Variable HInstance????
Hasst du auch nur den blassesten Schimmer wozu der Parameter da ist und welche Variable aus deinem Code dem entspricht was du brauchst?
Ja wo bekommst du denn wohl das Handle "deiner" Dll her??

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.11.2003, 19:24 Uhr
erpelqueen
Entlein


soll ich ehrlich sein? Ich habe keine Ahnung was da abgeht, aber wenn einer so freundlich wäre mir das zu erklären?
--
TSchöööööööö ,
How dy How, Ranger Joe
--------------------------------------
www.erpelstore.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.11.2003, 21:50 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



C++:
int WINAPI DllEntryPoint([b]HINSTANCE hinst[/b], unsigned long reason, void* lpReserved)



...
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.11.2003, 21:58 Uhr
Spacelord
Hoffnungsloser Fall



--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.11.2003, 13:18 Uhr
erpelqueen
Entlein


ja, genau das habe ich auch darüber.
Müssen die anderen Funktionen darin stehen, oder einzeln?
--
TSchöööööööö ,
How dy How, Ranger Joe
--------------------------------------
www.erpelstore.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.11.2003, 13:46 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



C++:
#include "HookDll.h"

/* Globals */
[b]HINSTANCE hInstance;[/b]
/* Globals, Ende */

// wird aufgerufen wenn die DLL geladen wird.
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
  [b]hInstance = hinst;[/b]
        return 1;
}

LRESULT CALLBACK MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    MOUSEHOOKSTRUCT mhs = *(MOUSEHOOKSTRUCT*)lParam;
    LONG lPoint = MAKELONG((WORD)mhs.pt.x, (WORD)mhs.pt.y);
    HWND MyWin = FindWindow("TForm1", "Form1");
    if (MyWin != NULL) //Das Fenster an das die Botschaft geschickt wird.
        SendMessage(MyWin, WM_MOUSEMOVE, wParam, (LPARAM)lPoint);
    return CallNextHookEx(0, nCode, wParam, lParam);
}

__declspec(dllexport) BOOL UninstallHook(HHOOK hook)
{
    return UnhookWindowsHookEx(hook); //Hook deinstallieren.
}

__declspec(dllexport) HHOOK InstallHook(HHOOK hook)
{    //Hook installieren.
    return SetWindowsHookEx(WH_MOUSE,(HOOKPROC)MouseHookProc,[b]hInstance[/b] , 0);
}


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
13.11.2003, 13:52 Uhr
erpelqueen
Entlein


Na das is ja nett. thx.
Ich will jetzt nähmlich n prog schreiben, was die aktuelle Mauskoordinate(also Sysweit) anzeigt.
Hmm, das mit der HINSTANCE kapier ich aber net.
Was für eine Variable ist denn das?
thxthxthx
--
TSchöööööööö ,
How dy How, Ranger Joe
--------------------------------------
www.erpelstore.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
13.11.2003, 13:56 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


HINSTANCE = HANDLE für die Instanz deines Programms

DllEntryPoint wird beim Laden der DLL aufgerufen, der HINSTANCE Parameter der Funktion enthält den Modulidentifier (Instance) deines Programms
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
13.11.2003, 18:55 Uhr
erpelqueen
Entlein


So, ich will keinen neuen Thread deswegen aufmachen:

Kennt jemand ein gutes offline-tutorila über DLls?
Also wie sie im allgemeinen aufgebaut sind, was sie machen, wie sie es machen, und wie sie mit den anderen programmmen kommunnizieren. Weil ich da irgendwie nicht durchblicke, selbst wenn meine dll mir nur 2 Zahlen addieren soll.

Ich habe schon ganz viel gegoogelzt, aber so richtig findet man nichts.
Ich will dass ja mit einem Prog in MFC dann benutzen....

DANKESCHÖN im Voraus
--
TSchöööööööö ,
How dy How, Ranger Joe
--------------------------------------
www.erpelstore.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: