0 votes

Est-ce que __VSFINDRESULT a une valeur incorrecte ?

Je suis en train de créer un éditeur Visual Studio personnalisé et j'essaie actuellement d'activer la fonction de recherche et de remplacement.

Dans le IVsFindTarget.Find Il est indiqué dans la méthode __VSFINDRESULT.Found et je suppose que les drapeaux __VSFINDRESULT.AndReplace sont retournés lorsqu'une demande de recherche et de remplacement est appelée. Le problème est que AndReplace est défini :

VSFR_AndReplace = -2147483648

Mais la documentation dit :

Renvoyé en combinaison avec Found ou NotFound

VSFR_AndReplace n'est pas un uint valide. Comment pourrais-je renvoyer une combinaison des deux ?

1voto

Noah Richards Points 4776

Essayez simplement d'utiliser VSFR_Replaced (qui dit qu'il s'agit déjà d'une combinaison de Found y Replaced ), par souci de concision.

Quant à être un valide uint vous pouvez certainement traiter comme un valide uint . Même si la représentation décimale est signée, considérez la représentation sous-jacente. En binaire, c'est 0b 11111111 11111111 10000000 00000000 ou 0xffffffff80000000 dans l'hexagone. Vous pouvez simplement ignorer les deux mots du haut, ce qui en fait 0x8000000 . Quoi qu'il en soit, comme ils sont utilisés comme des drapeaux, vous pouvez ignorer la valeur réelle de toute façon, et faire quelque chose comme :

(uint)(__VSFINDRESULT.VSFR_Found | __VSFINDRESULT.VSFR_AndReplace)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X