Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ATL CString还是?_String_Com_Mfc_Visual C++_Atl - Fatal编程技术网

ATL CString还是?

ATL CString还是?,string,com,mfc,visual-c++,atl,String,Com,Mfc,Visual C++,Atl,在我们的COM项目中,我们需要在最佳字符串类实现之间进行选择,以便BSTR(用于COM接口)和优雅的字符串类(如CString)提供许多字符串操作API 有没有更好的方法来处理字符串和字符串操作,这样就可以处理BSTR投诉以及简单的CString操作?CString具有AllocSysString函数: 您可以在调用COM方法之前使用它 您可以使用_bstr\u t::Attach从CString::AllocSysString调用创建_bstr\u t实例,在这种情况下,您不需要关心bstr

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


有没有更好的方法来处理字符串和字符串操作,这样就可以处理BSTR投诉以及简单的CString操作?

CString具有AllocSysString函数:

您可以在调用COM方法之前使用它


您可以使用_bstr\u t::Attach从CString::AllocSysString调用创建_bstr\u t实例,在这种情况下,您不需要关心bstr的发布。

这里没有什么真正优雅的东西。最好使用
CString::AllocSysString()
,最好使用像
CComBSTR
\BSTR\t
这样的BSTR包装器来管理生成的BSTR生存期。看看它通常是怎么做的