France Hardware : Forums de discussion - Découvrez notre nouveau comparateur d'offres Internet
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
29 521 membres enregistrés - 2 069 420 posts - 122 057 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           Sujets divers
                Probleme avec IsDebuggerPresent()
89 connectés(record : 2799 le 29 May 2016 - 15 h 34)

Vous devez vous connecter pour répondre au topic.
Probleme avec IsDebuggerPresent()

agzel


Messages : 1 044
Inscrit le 26/02/03
Non connecté
  Posté le 30 November 2005 - 22 h 42 m 45 s
Salut voila j'ai un souci avec cette fonction au niveau d ela compilation pourtant j'ai bien linker avec kernel32.lib:


#include <stdio.h>
#include <windows.h>
#include <winbase.h>

#define _WIN32_WINNT 0x0400
#pragma comment(lib, "Kernel32.lib")

int main()
{

if(IsDebuggerPresent())
printf("debuging en cours\n");
else
printf("pas de debugging en cours\n");


return 0;
}

Compiling...
main.c
d:\sauvegarde\my coding\test\main.c(32) : warning C4013: 'IsDebuggerPresent' undefined; assuming extern returning int
Linking...
main.obj : error LNK2001: unresolved external symbol _IsDebuggerPresent
Debug/main.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

main.exe - 2 error(s), 1 warning(s)

Euh je vois vraiment pas la :hot:




agzel


Messages : 1 044
Inscrit le 26/02/03
Non connecté
  Posté le 30 November 2005 - 22 h 55 m 36 s
J'aimerais eviter la methode bourin :

#include <stdio.h>
#include <windows.h>
#include <winbase.h>


typedef BOOL (WINAPI *PIsDebuggerPresent)(void);

BOOL My_IsDebuggerPresent(void)
{

PIsDebuggerPresent isDeb;
CHAR K32Path[ MAX_PATH ];
HINSTANCE hK32;
BOOL Rc;

Rc = FALSE;
GetSystemDirectory( K32Path, MAX_PATH );
strcat( K32Path, "KERNEL32.DLL" );
hK32 = LoadLibrary( K32Path );
if( hK32 != NULL ) {
isDeb=
(PIsDebuggerPresent)GetProcAddress(hK32,"IsDebuggerPresent");
if(isDeb != NULL)
{
Rc = TRUE;
isDeb();
}
FreeLibrary( hK32 );
}
return Rc;
}

int main()
{

if(My_IsDebuggerPresent())
printf("debuging en cours\n");
else
printf("pas de debugging en cours\n");


return 0;
}




Petit_PimoOosE
rsqrtps & pshufb

Messages : 4 617
Inscrit le 15/06/03
Ville : Montréal
Non connecté
  Posté le 01 December 2005 - 01 h 46 m 24 s
Essaie avec
#define _WIN32_WINNT 0x0400
AVANT l'inclusion de windows.h ;-)



Huile de fraise.

agzel


Messages : 1 044
Inscrit le 26/02/03
Non connecté
  Posté le 01 December 2005 - 12 h 49 m 26 s
Ca marche :dd: !

I'm confused. :houps: :houps:

Qui c'est qu'as dis que j'etait un boulet lol




kanader
Bang Bang !

Messages : 758
Inscrit le 09/02/03
Ville : grenoble
Non connecté
  Posté le 24 December 2005 - 19 h 22 m 24 s
tu peux le faire aussi en asm inline, ça va beaucoup + vite :

pour nt par exemple:

MOV EAX, FS:[$18]
MOV EAX, [EAX+$30]
MOVZX EAX, [EAX+2]





VDS batterie sony NP-FT1 8€

Petit_PimoOosE
rsqrtps & pshufb

Messages : 4 617
Inscrit le 15/06/03
Ville : Montréal
Non connecté
  Posté le 24 December 2005 - 22 h 39 m 50 s
On économise probablement toute la pile d'appels de l'API Win32, mais je doute que ce soit le genre d'appels passés dans une boucle critique ;-)
Si la valeur de retour doit être réutilisée, autant la stocker dans un booléen qui lui sera accessible en une instruction... Et de manière "portable".



Huile de fraise.

kanader
Bang Bang !

Messages : 758
Inscrit le 09/02/03
Ville : grenoble
Non connecté
  Posté le 26 December 2005 - 17 h 33 m 30 s
oui tout à fait :)


en delphi je fais une tite fonction en asm :

function isdgp: boolean;
asm
MOV EAX, FS:[$18]
MOV EAX, [EAX+$30]
MOVZX EAX, [EAX+2]
end;


if isdgp then ...

c'est quand même beaucoup plus pratique (et discret :dd: ) que de passer par l'API.



VDS batterie sony NP-FT1 8€

Page genérée en 0.1200 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL | Actualité ADSL | Deligo | Appareil photo | Commande Au Volant
Creative Commons
Message Boards and Forums Directory