2009-07-15 13 views

risposta

15

Sì - Go "Debug/Nuovo punto di interruzione/rottura in funzione ..." e incollare questo:

{,,kernel32.dll}[email protected] 

nella casella di funzione.

Che presuppone una creazione Unicode - sostituire W con A per build ANSI.

Un po 'di spiegazione: pezzo @40 fa parte del stdcall convenzione di chiamata, e fornisce il numero di byte di parametri che la funzione prende. In win32, questo è quasi sempre 4 volte il numero di parametri. Anche il trattino basso fa parte della convenzione di chiamata stdcall.

una nota correlata: a volte il nome della funzione come si è visto dal debugger è diverso dal suo vero nome - vedere questo post del blog per un esempio, e come trovare il nome giusto da utilizzare: Setting a Visual Studio breakpoint on a Win32 API function in user32.dll

+4

Meglio rompere su entrambi. A causa del funky comportamento non const di CreateProcessW, anche le applicazioni Unicode potrebbero chiamare CreateProcessA. La macro CreateProcess non nasconde le dichiarazioni di due funzioni sottostanti in modo che rimangano richiamabili. Questo vale anche per macro simili per altre coppie di funzioni. – MSalters

+2

Un'altra cosa da notare è che devi prima scaricare i simboli 'kernel32.dll'. Puoi farlo dal menu di scelta rapida all'interno di Debug/Windows/Modules. – ulidtko

+0

spiegazione della sintassi {,,,} è qui: https://msdn.microsoft.com/en-us/library/wztycb7f(v=vs.100).aspx nota che per qualsiasi motivo l'articolo non esiste per studio visivo superiore a vs2010 –

Problemi correlati