在我们的COM项目中,我们需要在最佳字符串类实现之间进行选择,以便BSTR(用于COM接口)和优雅的字符串类(如CString)提供许多字符串操作API。
有没有更好的方法来处理字符串和字符串操作,以便它可以是BSTR投诉以及我们可以进行天真的CString操作?
答案 0 :(得分:2)
不幸的是,这里没什么好看的。您可以做的最好的事情是使用CString::AllocSysString()
,并且最好使用像CComBSTR
或_bstr_t
这样的BSTR包装来管理生成的BSTR生命周期。请参阅this question了解其常见方式。
答案 1 :(得分:0)
CString具有AllocSysString功能: http://msdn.microsoft.com/en-us/library/za1865s1%28VS.80%29.aspx
您可以在调用COM方法之前使用它。
你可以使用_bstr_t :: Attach从CString :: AllocSysString调用创建_bstr_t实例,在这种情况下你不需要关心BSTR的发布。