Je reçois une exception de mémoire protégée, mais comment puis-je savoir quel appel l'a provoqué et pourquoi la fonction de rappel a été déplacée? Tous les appels au code non géré sont faits dans la même classe que les fonctions de rappel, donc je suppose que les adresses ne devraient pas changer, ou ai-je totalement tort ici?Comment puis-je détecter quel rappel d'une DLL non gérée provoque une exception de mémoire protégée?
Q
Comment puis-je détecter quel rappel d'une DLL non gérée provoque une exception de mémoire protégée?
1
A
Répondre
2
Pour le code natif à rappeler en code managé, vous avez besoin d'un délégué de rappel (tant que nous ne parlons pas d'interopérabilité COM). Et la raison la plus courante des erreurs est que le délégué de rappel est récupéré avant le dernier rappel. Peu importe dans quelle classe la cible de rappel est définie, il est essentiel de conserver le délégué en vie.
La possibilité de spécifier simplement le nom de la méthode et de laisser le compilateur C# créer un délégué temporaire pour vous rend cette erreur encore plus commune. C'est à dire. au lieu de
SetCallback(MyCallbackMethod); // No good since you can't keep reference to delegate
faire ce
_callback = MyCallbackMethod; // Create delegate explicitly and store reference at class level
SetCallback(_callback);
Vous pouvez activer "managed debug assistants" pour vous aider à trouver ce type de bug.
Questions connexes
- 1. Exception non gérée à 0x10012c5d (highgui110.dll)
- 2. Fonction de rappel à partir d'une DLL non gérée dans VB .NET
- 3. gérer une exception non gérée
- 4. Mémoire non gérée et mémoire gérée
- 5. Exception Win32 non gérée
- 6. asp.net exception non gérée
- 7. étrange exception non gérée
- 8. Exception non gérée
- 9. Terminer l'application après une exception non gérée
- 10. Exception non gérée par Django
- 11. Une exception non gérée a été générée
- 12. Lecture/écriture sur une exception de mémoire protégée lancée (.net)
- 13. Exception non gérée dans Windows
- 14. Exception non gérée CachedRawResponse asp.net
- 15. système win32 exception non gérée
- 16. Django Erreur: Exception non gérée
- 17. La modification de CFrameWnd en CFrameWndEx dans MFC provoque une exception non gérée - des idées?
- 18. Réception d'un objet dans une fonction de rappel non gérée
- 19. Comment détecter une application non gérée a avorté
- 20. Comment simuler une exception non gérée dans Java
- 21. Comment gérer les exceptions dans des applications mixtes? (application gérée utilisant une DLL non gérée)
- 22. Exception de boucle d'événement non gérée
- 23. [Problème d'allocation de mémoire] Exception non gérée: exception Microsoft C++: std :: bad_alloc à l'emplacement de la mémoire
- 24. Le rappel d'un autre thread provoque une exception
- 25. Recherche d'une API dll non gérée?
- 26. Empêche wxPython d'afficher une boîte de dialogue 'Exception non gérée'
- 27. Exception non gérée dans l'extension VS
- 28. Le contrôle utilisateur WPF provoque une exception de mémoire insuffisante
- 29. Une exception non gérée de type 'System, Access Violation Exception' s'est produite dans HealthCareProvider.exe
- 30. Postsharp Une exception non gérée simplement en ajoutant une référence