我正在创建自定义Visual Studio编辑器,目前正在尝试启用查找和替换。
在IVsFindTarget.Find方法中,它表示返回__VSFINDRESULT.Found,并且当它调用的查找和替换请求时,我假设__VSFINDRESULT.AndReplace标志。问题在于定义了AndReplace:
VSFR_AndReplace = -2147483648
但文件说:
与Found或 NOTFOUND
VSFR_AndReplace不是有效的uint。我怎么能归还两者的组合?
答案 0 :(得分:1)
为了简洁起见,请尝试使用VSFR_Replaced
(表示它已经是Found
和Replaced
的组合)。
至于有效的uint
,您当然可以将视为有效的uint
。尽管十进制表示已签名,但请考虑基础表示。在二进制文件中,它是0b 11111111 11111111 10000000 00000000
或十六进制的0xffffffff80000000
。您可以忽略上面的两个单词,使其成为0x8000000
。无论如何,因为它们被用作标志,所以你可以非常安全地忽略实际值,并执行以下操作:
(uint)(__VSFINDRESULT.VSFR_Found | __VSFINDRESULT.VSFR_AndReplace)