ou autre poignée gdi, telle qu'une brosse à stylo. comment puis-je savoir est-ce valable?Comment est-ce que je sais que c'est un handle de région gdi valide?
Répondre
ne jamais vous mettre dans une situation où vous pourriez vous tenir sur une poignée qui n'est pas valide. Si nécessaire, définissez le handle sur NULL après avoir appelé DeleteObject() afin qu'il soit complètement évident. En supposant qu'une fonction GDI vous donnera une valeur de retour FALSE parce que vous avez passé un mauvais handle n'est pas sûr.
+1. En général, c'est le cas, mais en lisant son commentaire modifié, il veut vérifier si une fonction de création GDI a réussi. Échec crée return NULL. Pourquoi NULL? Les poignées GDI étaient des pointeurs. Elles ne le sont plus. – Joshua
Ok, dans ce cas, appelez votre fonction CrashAndBurnMyAppBecauseIHaveANastyHandleLeakInMyProgram() personnalisée. –
La réponse est: d'où avez-vous obtenu le handle? En termes simples, c'est comme avec l'art: comment savez-vous que c'est authentique, pas un faux? Il y a quelques "heuristiques", mais la seule façon de travailler à 100% est de savoir d'où ça vient. Par conséquent, en ce qui concerne les régions GDI: vous devez uniquement approuver les handles de région renvoyés par les fonctions GDI.
:)
Aime l'analogie. – Tergiver
Essayez GetObject()
ou GetObjectType()
. Ils devraient retourner NULL si le handle de l'objet n'est pas valide.
Je peux voir où vous voulez utiliser ceci pour le débogage. Dans un monde parfait, nous gardons la trace de nos objets et savons où ils sont en tout temps.
Notre monde n'est pas un monde parfait.
- 1. Est-il possible de dupliquer un handle GDI?
- 2. "La propriété ConnectionString n'est pas valide." quand je sais que c'est valide
- 3. comment régler la région de GDI HDC?
- 4. Servlet Indisponible (Je sais que c'est commun)
- 5. F # winforms Problème de MenuStrip: Je ne sais pas comment obtenir un handle sur DropDownItems
- 6. En utilisant/ApplicationPublicName ne je sais que la sortie
- 7. Que fait le thread de fond GDI +?
- 8. Quand est-ce que windows signale un handle de processus?
- 9. C# - Je sais que je peux le faire dans LINQ, mais je ne peux pas le faire fonctionner
- 10. Comment vérifier que l'association est valide
- 11. Dans un filtre de contrôleur d'application, est-ce que je sais quelle action va être appelée?
- 12. Je sais que ma vue de titre est un UISegmentedControl, Xcode m'avertit toujours
- 13. Je ne sais pas comment utiliser ccTouchesBegan pour faire ce que je veux faire
- 14. Comment éviter que la région JBoss-Cache ne soit expulsée?
- 15. Aléatoire <hr/> que je ne sais pas comment se débarrasser de!
- 16. Comment je sais que la taille de mon document à l'intérieur MongoDB avec le pilote rubis
- 17. JavaScript est un NaN, mais je sais que ce n'est pas?
- 18. Erlang - Global Variables .. oui je sais, je sais
- 19. Comment obtenir le RealProxy quand je sais que le proxy transparent
- 20. Comment laisser gdi/gid + un objet (crayon \ brosse \ rect \ région etc.) semi-transparent?
- 21. Rails affirment que la forme est valide
- 22. Comment dessiner un bitmap ARGB en utilisant GDI +?
- 23. Crystal Reports - PrintToPrinter "Le handle n'est pas valide"
- 24. packages visuels en C++ pour Windows (je sais que je ne devrais pas utiliser windows =()
- 25. Comment s'assurer que la version valide de System.Web.Mvc est utilisée
- 26. Erreur MySQL 1064, je ne sais pas ce que je fais mal ici
- 27. Est-ce que quelqu'un sait comment utiliser gdi + pour ouvrir un fichier image de plusieurs pages?
- 28. FindFileFirst() Valeur du handle non valide pour chaque chemin d'accès
- 29. Comment puis-je obtenir un jeton d'utilisateur valide pour CreateProcessAsUser?
- 30. Est-ce que GDI + est juste une couche au-dessus de GDI, ou quelque chose de nouveau?
Pourquoi avez-vous besoin de cela? Puisque vous êtes celui qui crée et détruit les objets GDI, vous devez savoir s'ils sont valides ou non. – casablanca
je viens de le créer, je ne sais pas si cela a réussi. – lovespring
La plupart des fonctions GDI renverront un handle 'NULL' en cas d'échec. Vérifiez simplement la documentation MSDN pour les fonctions spécifiques qui vous intéressent. – casablanca