barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

пятница, 28 октября 2011 г.

Копирование из BSTR в wchar_t


Ниже приведен пример, демонстирующий, как можно скопировать данные из строки типа BSTR (полученной, например, после вызова метода COM-объекта, возвращающего строку) в строку типа wchar_t*:
UINT length = SysStringLen(myBstr);        // определяем длину BSTR
wchar_t *myString = new wchar_t[lenght+1]; // используем "+1" т.к. SysStringLen не учел nul в конце строки
wcscpy_s(myString ,wcslen(myString ), myBstr); // копируем, используя безопасную wcscpy_s вместо wcscpy, помеченной как "deprecated"
SysFreeString(myBstr); // скопированную уже BSTR-строку теперь можно корректно удалить

Комментариев нет:

Отправить комментарий