【问题标题】:Using boost to handle COM variants使用 boost 处理 COM 变体
【发布时间】:2011-09-23 03:03:47
【问题描述】:

我正在处理一个具有大量 COM 函数的 c++ 项目。大多数输入和输出都是变体。有没有一种简单的方法可以使用 Boost 将它们序列化/反序列化为长字符串等?

【问题讨论】:

    标签: c++ boost com


    【解决方案1】:

    Boost 与 Microsoft 的 COM 技术完全无关。在 Boost 中最接近 COM 的变体是boost::any。你可以编写COM的variant_tboost::any转换器,然后你可以序列化,转换等。

    【讨论】:

    • 所以你说我能做到,但我得用OLE2A等写转换函数
    • @JWM:是的,你必须自己写。
    • boost::lexical_cast 怎么样?我可以用那个代替吗?我尝试将其从 BSTR 转换为 int(有效),但无法将 BSTR 转换为字符串。
    • @JWM:词法转换对 COM 的变体一无所知。但是您可以添加几行额外的代码来支持它。见boost.org/doc/libs/release/libs/conversion/lexical_cast.htm
    【解决方案2】:

    有一个名为 FatRat 库的开源 OPC(用于过程控制的 OLE)服务器实现。它使用 boost 并推动了很多 VARIANT。非常鼓舞人心。

    【讨论】:

      猜你喜欢
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多