|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Dec 2007
Messaggi: 190
|
[C++] Qualcuno mi spiega queste due istruzioni?
1) lpfEnumProcessModules = (BOOL(WINAPI *)(HANDLE, HMODULE *,
DWORD, LPDWORD)) GetProcAddress( hInstLib, "EnumProcessModules" ) ; 2) BOOL (WINAPI *lpfEnumProcesses)( DWORD *, DWORD cb, DWORD * ); Se qualcuno gentilmente puo' spiegarmi per filo e per segno queste due istruzioni che non ci capisco niente sembrano due intestazioni di funzioni... boh.In rete non ho trovato niente. A cosa servono le DWORD , HANDLE, WINAPI... ? grazie a tutti. |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
la prima è una stupidaggine, non nel senso di cosa facile da capire ma nel senso di cosa stupida, ottusa: cerca di ottenere con la GetProcAddress l'indirizzo della funzione EnumProcessModules, che è regolarmente importata dall'header psapi.h (è inutile fare linking esplicito a run-time quando si può fare linking implicito in compile-time); l'indirizzo restituito dalla GetProcAddress viene memorizzato in una variabile lpfEnumProcessModules (e chissà perché invece non l'ha chiamata EnumProcessModules... perché altrimenti collideva con qualcos'altro forse?
![]() la seconda invece altro non è che la dichiarazione di un'altra variabile analoga alla lpfEnumProcessModules; quest'altra variabile si chiama lpfEnumProcesses e lascia intendere che l'autore idiota abbia fatto questo lavoro di linking esplicito per tutte le PSAPI (ma una versione aggiornata del PSDK no? ![]() per ulteriori informazioni circa i tipi Win32: http://msdn2.microsoft.com/en-us/library/aa383751.aspx per ulteriori informazioni invece circa le PSAPI (Process Status API): http://msdn2.microsoft.com/en-us/lib...84(VS.85).aspx |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Dec 2007
Messaggi: 190
|
Ciao grazie per l'aiuto finalmente ho trovato un po di documentazione.
Ricapitolando: 1) lpfEnumProcessModules =variabile in cui verra' memorizzato il valore restituito da getprocaddress 2) (BOOL(WINAPI *)(HANDLE, HMODULE *,DWORD, LPDWORD)) = ???? 3) GetProcAddress( hInstLib,"EnumProcessModules" ) ; = Funzione GetProcAddress la 2) che cos'e' ? una specie di supercast ? psdk non so cos'e'... maro' che ignoranza... dove le imparo queste cose? |
![]() |
![]() |
![]() |
#4 | ||
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
Quote:
|
||
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Dec 2007
Messaggi: 190
|
ah ok grazie
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:24.