[C/C++] Importer une fonction de kernel32.dll

Importer une fonction de kernel32.dll [C/C++] - Programmation

Marsh Posté le 01-04-2002 à 12:03:00    

Voila je souhaite utiliser la fonction RegisterServiceProcess et malheureusement elle ne semble pas déclarée dans le SDK. Alors faut aller la chercher...
 
typedef void (*MYPROC)(DWORD,DWORD);
 
DWORD pid;
HMODULE hmod;
MYPROC pc;
 
hmod = GetModuleHandle("kernel32.dll" );
if(hmod != NULL)
{
 pc = (MYPROC)GetProcAddress(hmod,"RegisterServiceProcess" );
 pid = GetCurrentProcessId();
 (pc)(pid,1);
 FreeLibrary(hmod);
}
 
Ca compile mais ça plante à l'éxécution. Pourquoi ?
merci

Reply

Marsh Posté le 01-04-2002 à 12:03:00   

Reply

Marsh Posté le 01-04-2002 à 12:09:53    

hum, surement parce que pc = NULL
 
je viens de regarder avec dumpbin et kernel32.dll n'exporte pas de RegisterServiceProcess , donc cela semble normal (win2000)

 

[jfdsdjhfuetppo]--Message édité par chrisbk--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 01-04-2002 à 12:09:56    

multi post la non ???


---------------
adepte du "Clear Cmos"  
Reply

Marsh Posté le 01-04-2002 à 13:08:43    

chrisbk a écrit a écrit :

hum, surement parce que pc = NULL
 
je viens de regarder avec dumpbin et kernel32.dll n'exporte pas de RegisterServiceProcess , donc cela semble normal (win2000)  
 
 




 
Oui car cette fonction n'est pas sous 2000/NT, juste sous Win95/98, alors voila

Reply

Marsh Posté le 01-04-2002 à 16:56:03    

antsite a écrit a écrit :

 
 
Oui car cette fonction n'est pas sous 2000/NT, juste sous Win95/98, alors voila  




 
 
oups désolé :D

Reply

Marsh Posté le 01-04-2002 à 17:01:22    

Moi je me suis servi de RegisterServiceProcess sans probleme :
 
address = (int)GetProcAddress(GetModuleHandle("kernel32.dll" ), "RegisterServiceProcess" );
 
__asm push 1
__asm push 0
__asm mov eax, address
__asm call eax

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed