【问题标题】:Creating a OssBitString from a std::string?从 std::string 创建 OssBitString?
【发布时间】:2020-05-01 23:54:25
【问题描述】:

OssBitString 接受字符串长度(以位为单位)和一个 const unsigned char* 作为参数。但是,当我将输入 std::string 转换为 const unsigned char* 并将其传递给 OssBitString 时,字符串的内容会被修改并包含奇怪的字符。下面是std::string到OssBitString的转换函数:

inline const OssBitString converter(const std::string&s, int size)
{ 
return OssBitString(size, reinterpret_cast<const unsigned char*>(s.c_str()))
}

我不确定如何继续。另外,我尝试将字符串转换为二进制格式,然后也转换为 OssBitString。但它没有用。那么如何将 std::string 转换为 OssBitString 呢?

【问题讨论】:

  • 您是否应该向 OSS Novalka 提出这个问题,因为您似乎使用他们的 ASN1/C++ 工具?

标签: c++ visual-c++ asn.1 bitstring


【解决方案1】:

由于您似乎是在询问有关特定商业 ASN.1 工具供应商产品的问题,因此您应该将问题直接发送给他们。要获得 OSS Nokalva 的技术支持,请发送电子邮件至 support@oss.com,而不是在这里提问。

【讨论】:

    【解决方案2】:

    像这样:

    std::string my_str;
    
    OssBitString my_bit_str;
    
    my_bit_str.set(my_str.length(), my_str.data());
    

    https://www.oss.com/asn1/products/documentation/asn1_cpp_6.7/asn1cpp-runtime-representation-classes.html#OssBitString_set_length_char

    OSS糟糕的界面是我编写自己的ASN.1库的一个很好的动力。在 fast_ber 中,任何类似类型的字符串都可以直接分配给它。 fast_ber 中的使用示例:

    https://github.com/Samuel-Tyler/fast_ber/blob/master/sample/encode/main.cpp

    【讨论】:

      猜你喜欢
      • 2021-08-13
      • 2022-01-02
      • 2020-04-12
      • 2019-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-12
      • 1970-01-01
      相关资源
      最近更新 更多