Создание OssBitString из std :: string? - PullRequest
0 голосов
/ 15 января 2020

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 тогда?

Ответы [ 2 ]

0 голосов
/ 26 января 2020

Примерно так:

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

0 голосов
/ 15 января 2020

Поскольку вы, похоже, задаете вопрос о конкретном коммерческом продукте поставщика инструментов ASN.1, вы должны отправить свой вопрос непосредственно им. Чтобы обратиться в службу технической поддержки OSS Nokalva, отправьте электронное письмо по адресу support@oss.com, а не задавайте свой вопрос здесь.

...