我遇到了一段代码,需要对给定的CComBSTR对象进行前缀检查(类似于
查看API下的CComBSTR成员中列出的运算符,它允许进行非常基本的比较,如==、>、<等。我有两个想法来解决这个问题(如下所示)。然而,我并不深刻理解什么是最有效/最简单的方法。如果我完全偏离了轨道,请告诉我。
Y.StartsWith("X")
)。C ++ 对我来说有点陌生,我最担心的是效率。我不需要以任何方式修改CComBSTR。我想要的只是返回一个布尔值,表示它是否以X前缀开头。查看API下的CComBSTR成员中列出的运算符,它允许进行非常基本的比较,如==、>、<等。我有两个想法来解决这个问题(如下所示)。然而,我并不深刻理解什么是最有效/最简单的方法。如果我完全偏离了轨道,请告诉我。
- 使用BSRTToArray创建一个数组,然后迭代前n个指数,以检查它是否具有特定的前缀。
- 从CComBSTR获取BSTR,并对BSTR进行比较(尚未解决如何执行此操作)
WCHAR*
可以直接兼容BSTR
,并且您可以将两者作为参数提供给wcs*
函数。但请注意,空的BSTR
仍然是一个有效值,而它不是wcs*
函数的有效参数。 - Roman R.