Dll et dev-c++

Résolu
bou3 Messages postés 42 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 26 juin 2005 - 15 juin 2005 à 14:49
bou3 Messages postés 42 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 26 juin 2005 - 15 juin 2005 à 17:23
salut a tous!
je realise un hook clavier pour mon stage.
je programme sous dev-c++ et j`ai termine le dll( j`ai mon fichier .dll et le .a = .lib sous dev-c++ si j`ai bien compris)
maintenant je cherche a m`en servir dans mon application et je ne sais pas comment faire meme avec ce que j`ai trouve sur internet :( .
est-ce que vous pouvez m`aider?
je continues dans mes experimentations mais je ne suis pas contre un peu d`aide.

13 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
15 juin 2005 à 17:14
Dans les options du linker, tu ajoutes tout simplement le nom de ton fichier .a
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
15 juin 2005 à 15:09
Il y a plein d'exmples de hook global ici? C'est quoi exactement ton
problème? Le hook lui même ou bien juste l'utilisation des fonctions de
la DLL?
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
15 juin 2005 à 15:12
Un exemple de hook global avec Dev-C++

http://www.cppfrance.com/code.aspx?ID=25013
0
bou3 Messages postés 42 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 26 juin 2005
15 juin 2005 à 15:19
j`ai vu qu`il y avait plain d`exemples de hook.
j`ai vu celui que tu me donne en lien, j`ai essaye de faire pareil sans reussite.
mon pb est de me servir des fonctions dans mon application.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bou3 Messages postés 42 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 26 juin 2005
15 juin 2005 à 16:11
est-ce que je dois inclure le .a ou le .dll a mon projet?
est-ce que je doit entrer une ligne dans mon code pour l`inclusion?
c pas dans l`exemple que tu me donne?(je ne vois peut etre plus tres clair)
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
15 juin 2005 à 16:17
Tu ajoutes le .a au options du linker et tu mets la dll à coté de l'executable, on en aura besoin à l'execution

Pour les définitions, tu as juste à déclarer les fonction que ta DLL exporte

Il y a tout dans le projet que je t'ai montré, rien a rajouter
0
bou3 Messages postés 42 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 26 juin 2005
15 juin 2005 à 16:35
Dans le ppal au lien que tu me donne il y a juste ca:
int main ( )
{
InitHook ( );
system("PAUSE");
EndHook ( );
return 0;
}
je n`ai pas trouve les declarationsdes fonctions de la dll.
sais-tu comment les declarer?
merci
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
15 juin 2005 à 16:49
Quand on compile en C, pas besoin de déclarer les fonction (ca donnera
juste un warning). En C++ par contre tu es obligé en effet:



void InitHook();

void EndHook();



int main ( )

{

InitHook ( );

system("PAUSE");

EndHook ( );

return 0;

}



Tu vois c'est pas grand chose, ca sert juste à spécifier les types au compilateur.
0
bou3 Messages postés 42 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 26 juin 2005
15 juin 2005 à 16:59
mon probleme doit venir d`ailleurs alors.
voila la prog de mon projet dll (si tu as qqch a dire):

#include <windows.h>


# define DLLEXPORT __declspec (dllexport)
# define DLLIMPORT __declspec (dllimport)


HINSTANCE moduleCourant;
HHOOK hookClavier;


LRESULT CALLBACK InterceptionCombinaisonsClavier(int nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode == HC_ACTION)
{
KBDLLHOOKSTRUCT kbStruct = *((KBDLLHOOKSTRUCT *)lParam);
switch(wParam)
{
case WM_KEYDOWN: if (kbStruct.vkCode VK_LWIN || kbStruct.vkCode VK_RWIN) // bloque touches windows
return 1;
if (kbStruct.vkCode == VK_ESCAPE && GetAsyncKeyState(VK_CONTROL)) // bloque control+echap
return 1; if (kbStruct.vkCode VK_MENU || kbStruct.vkCode VK_TAB) // alt+tab
return 1; if (kbStruct.vkCode VK_MENU || kbStruct.vkCode VK_F4) // alt+f4
return 1;
}
}
return CallNextHookEx(hookClavier, nCode, wParam, lParam);
}


void DLLEXPORT InitHook()
{
hookClavier = SetWindowsHookEx(WH_KEYBOARD_LL, InterceptionCombinaisonsClavier, moduleCourant, 0);
}


void DLLEXPORT EndHook()
{
UnhookWindowsHookEx(hookClavier);
}


BOOL APIENTRY DllMain (HINSTANCE hDll, DWORD dwReason, LPVOID Reserved)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
moduleCourant = hDll;
}
if (dwReason == DLL_PROCESS_DETACH)
{
EndHook();
}
return 1;
}
et j`ai fais une appli console comme dans l`exemple que tu m`as donne, et ajoute le .a au projet.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
15 juin 2005 à 17:03
Non pas grand chose à dire. A quel niveau se situe le problème en fait?
0
bou3 Messages postés 42 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 26 juin 2005
15 juin 2005 à 17:08
qd je compile l`appli console j`ai une erreur de lien.
pour lier le .a suffit que je fasse projet->ajouter au projet?
0
bou3 Messages postés 42 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 26 juin 2005
15 juin 2005 à 17:13
voila ce que j`obtient:
[Linker error] undefined reference to `InitHook'
0
bou3 Messages postés 42 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 26 juin 2005
15 juin 2005 à 17:23
ok d`accord j`avais pas compris bien quand tu parlais de linker
(option du projet -> editeur de lien -> ajouter fichier en fait, c tout con mais faut savoir)
merci a toi!
je t`aurai pris pas mal de temps!
desole si je me suis mal explique.
@+
0
Rejoignez-nous