Как скопировать данные строки возвращаемого типа в C ++? - PullRequest
1 голос
/ 12 марта 2012

У меня есть функция com-объектов с возвращаемым типом C # строки

string getData();

В моем коде C ++ у меня есть

cpi->getData(); 

, где cpi - указатель на экземпляр comobject.

Как получить эти возвращенные данные в переменной C ++?

--- edit ---

У меня также есть другая функция с именем handlepacket(char* data).

Как передать cpi->getData возвращенные строковые данные этой функции?

Кусок кода C ++ будет очень полезен.

1 Ответ

5 голосов
/ 12 марта 2012

Тип строки COM - BSTR. У него нетривиальные правила управления памятью. К счастью, класс _bstr_t C ++ охватывает BSTR и обеспечивает разумную семантику. Итак, _bstr_t foo = cpi->getData(); - самый простой способ.

Вы можете передать эту строку в handlepacket(wchar_t* data). Тип строки COM - это текст Unicode, а не 8-битные данные. Если ваша getData функция возвращает 8-битные данные, она должна была вернуть массив байтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...