ATL CString or_bstr_t?

时间:2010-03-21 08:33:39

标签: string com mfc visual-c++ atl

在我们的COM项目中,我们需要在最佳字符串类实现之间进行选择,以便BSTR(用于COM接口)和优雅的字符串类(如CString)提供许多字符串操作API。

有没有更好的方法来处理字符串和字符串操作,以便它可以是BSTR投诉以及我们可以进行天真的CString操作?

2 个答案:

答案 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的发布。