Module pour remplacer l erreur critique de protection generale

Description

Permet d'intercepter et de remplacer les erreurs issues d'API tout en déjouant « the general protection fault ». Lorsqu'une erreur de protection générale se produite, VB6 ne peut la gérer simplement. Cela provoque un crash avec le message : « vb6.exe - erreur d'application » ou « MyProg.exe - Application Error » et l'application se termine.

Ce module est axé autour de l'API SetUnhandledExceptionFilter, permettant à une application de remplacer le gestionnaire d'exception top-level. Le code source contient un exemple dans une form et le module en question. L'exemple provoque un crash si la gestion d'erreur n'est pas activée. Le message du crash est remplacé par un simple MsgBox. L'application n'est donc plus terminée et son programme continue.

Consultez la zone de code pour l'utiliser. Ça ne fonctionne pas dans l'IDE, faut compiler le projet.

J'ai placé le niveau de la source à expert, car je pense que les initiés ne rencontrent pas souvent ces crashs. Ce code source n'est pas de moi, je l'ai extrait d'un livre traitant des API Win32.

Source / Exemple :


' Pour déjouer l'erreur critique,
' appeller la fonction SetHandlerGPF dans Form_Load :
Private Sub Form_Load()
   ' installe le détournement de l'erreur de protection générale
   Call SetHandlerGPF
End Sub

' Pour restaurer la gestion standard de protection générale
' mettre dans Form_Unload :
Private Sub Form_Unload(Cancel As Integer)
' désinstalle le remplacement d'erreur = c'est recommandé
    Call RestoreHandlerGPF
End Sub

Conclusion :


Ca ne fonctionne pas dans l'IDE, faut compiler le projet.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.