【问题标题】:ATL CString or_bstr_t?ATL CString or_bstr_t?
【发布时间】:2011-01-29 23:53:00
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    不幸的是,这里没有什么真正优雅的。您可以做的最好的事情是使用CString::AllocSysString(),您最好使用像CComBSTR_bstr_t 这样的BSTR 包装器来管理生成的BSTR 生命周期。请参阅 this question 了解它通常是如何完成的。

    【讨论】:

      【解决方案2】:

      CString 具有 AllocSysString 功能: http://msdn.microsoft.com/en-us/library/za1865s1%28VS.80%29.aspx

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

      您可以使用 _bstr_t::Attach 从 CString::AllocSysString 调用创建 _bstr_t 实例,在这种情况下您不需要关心 BSTR 的释放。

      【讨论】:

        猜你喜欢
        • 2015-02-04
        • 2011-09-07
        • 2012-05-21
        • 2012-06-29
        • 1970-01-01
        • 2011-11-04
        • 2021-12-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多