Любые идеи о том, как сделать BSTR из LPCOLESTR? Глупая вещь, чтобы зацикливаться на ..Преобразование LPCOLESTR в BSTR?
1
A
ответ
5
LPCOLESTR
просто const wchar_t*
, так что вы можете использовать SysAllocString()
создать BSTR
:
LPCOLESTR olestr = ...;
BSTR bstr = SysAllocString(olestr);
Обязательно позвоните SysFreeString()
, когда вы сделали с вашей BSTR
, См. Также MSDN documentation on BSTR
s
1
Разница между BSTR и LPCOLESTR заключается в том, что BSTR имеет длину строки, префиксной перед строкой, LPCOLESTR не имеет.
BSTR не обязательно имеет конец окончания окончания строки 0 0, так как длина строки префиксна, для преобразования я обычно использую класс CComBSTR (atlcomcli.h), ctor принимает либо BSTR, либо LPCOLESTR в качестве аргумента, и есть член BSTR(), чтобы получить представление BSTR:
CComBSTR b(yourolestring)
// b.BSTR()
CComBSTR будет обрабатывать Allocating/не освободив таким образом отсутствует риск утечки памяти.
Смежные вопросы
- 1. В чем смысл BSTR, LPCOLESTR и других?
- 2. Преобразование BSTR в int
- 3. Преобразование BSTR в char *
- 4. Преобразование управляемых строк (C#) в LPCOLESTR (C++)
- 5. MS VC++ Преобразование байтового массива в BSTR?
- 6. Преобразование LPSTR в BSTR с использованием win32
- 7. C++: конвертировать wchar_t * в BSTR?
- 8. Преобразование BSTR в CString для текста на арабском языке
- 9. новообращенный BSTR в LPCWSTR
- 10. Нарушение прав доступа на CompStr (BSTR, BSTR) после получения строки?
- 11. Как преобразовать PUNICODE_STRING в bstr?
- 12. BSTR и SysAllockStringByteLen() в C++
- 13. конвертировать ATL :: CComBSTR в BSTR *
- 14. Копирование BSTR в char [1024]?
- 15. Как преобразовать int в BSTR?
- 16. Как конвертировать char * в BSTR?
- 17. Управление строкой BSTR в цикле
- 18. Как преобразовать int в BSTR
- 19. Утверждают в BSTR со строкой
- 20. Сохранить BSTR в std :: vector?
- 21. Как передать BSTR в printf?
- 22. как использовать ARGV [] в функции, которые нуждаются в LPCOLESTR
- 23. Должна ли быть разница между пустым BSTR и NULL BSTR?
- 24. OPOS BSTR * неправильно преобразован
- 25. Кому принадлежит возвращенный BSTR?
- 26. Установите BSTR на нуль
- 27. VC++ - строки и BSTR
- 28. PInvoke signiture BSTR FAR *
- 29. Как петля BSTR?
- 30. OLE bstr не имеет прекращения?
Обратите внимание, что OLECHAR == wchar_t действует только на платформе Wintel. Не уверен, что такое другие платформы, но это были забавные вещи, и на них BSTR, вероятно, просто символ *, так что ваш ответ правильный для всех практических целей;) – peterchen