0

我正在创建一个自定义 Visual Studio 编辑器,目前正在尝试启用查找和替换。

IVsFindTarget.Find方法中,它说返回 __VSFINDRESULT.Found 并且我假设 __VSFINDRESULT.AndReplace 在调用它的查找和替换请求时标记。问题是 AndReplace 被定义:

VSFR_AndReplace = -2147483648

但是文档说:

与 Found 或 NotFound 组合返回

VSFR_AndReplace 不是有效的 uint。我怎样才能返回两者的组合?

4

1 回答 1

1

为简洁起见,尝试仅使用VSFR_Replaced(表示它已经是Foundand的组合Replaced)。

至于是否有效uint,您当然可以其视为有效uint。即使十进制表示是有符号的,也要考虑底层表示。在二进制中,它是0b 11111111 11111111 10000000 00000000,或0xffffffff80000000在十六进制中。你可以忽略上面的两个词, make it 0x8000000。无论如何,由于这些被用作标志,你可以很安全地忽略实际值,并执行以下操作:

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