Ciao Mauro,
..
...
Sembra interessante, ed, almeno in teoria, dovrebbe essere proprio quello
che stav cercando, il problema pero' e' che non riesco a farlo funzionare.
In un modulo, ho importato la dichiarazione della funzione API,
Public Declare Function SetUnhandledExceptionFilter Lib "kernel32.dll"
(ByVal lpTopLevelExceptionFilter As Long) As Long
dopo di cio' nel Sub Main (ma ho provato anche nel Form_Load impostando la
form come oggetto di avvio),
Dim hnt As Long
hnt = SetUnhandledExceptionFilter(AddressOf ExceptionFilter)
dove ExceptionFilter e' una funzione, che, in base ad esempi che ho trovato
sul web, e' scritta:
Public Function ExceptionFilter(ByRef ExcPtrs As SYSEXC_POINTERS) As
Long
Dim I As Integer
I = 0
End Function
Naturalmente ho definito anche la struttura SYSEXC_POINTERS.
In questo momento, naturalmente, la funzione non fa nulla, semplicemente ho
messo un breakpoint sulla riga I=0 per vedere se, in caso di un errore di
runtime, effettivamente la funzione registrata come callback fosse stata
chiamata.
In una form, quindi, ho messo su un button, e nel codice di click,
semplicemente faccio una conversione non possibile ( Cint ("pippo") ) e
viene quindi sollevato un errore di runtime 13.
Da quanto avevo capito, e sperato, in questo caso l'errore non si sarebbe
dovuto "vedere", ma la mia funzione ExceptionFilter avrebbe dovuto essere
chiamata.
Ho capito male, oppure ho sbagliato qualche cosa?