0

カスタムVisualStudioエディターを作成していて、現在、検索と置換を有効にしようとしています。

IVsFindTarget.Findメソッドでは、 __ VSFINDRESULT.Foundを返すように指示されており、検索と置換の要求が呼び出されたときに__VSFINDRESULT.AndReplaceフラグを想定しています。問題は、AndReplaceが定義されていることです。

VSFR_AndReplace = -2147483648

しかし、ドキュメントには次のように書かれています。

FoundまたはNotFoundと組み合わせて返送

VSFR_AndReplaceは有効なuintではありません。2つの組み合わせを返すにはどうすればよいですか?

4

1 に答える 1

1

簡潔にするために、 (すでにとの組み合わせであるとVSFR_Replaced言います)を使用してみてください。FoundReplaced

validuintであることに関しては、確かにそれを valid のように扱うuintことができます。10 進数表現は符号付きですが、基になる表現を考慮してください。2 進数では0b 11111111 11111111 10000000 00000000、または0xffffffff8000000016 進数です。上の 2 つの単語を無視して、0x8000000. とにかく、これらはフラグとして使用されるため、とにかく実際の値を無視して、次のようなことを行うことができます。

(uint)(__VSFINDRESULT.VSFR_Found | __VSFINDRESULT.VSFR_AndReplace)
于 2010-07-08T04:25:41.110 に答える