Вы можете сделать следующее:
selector: 'app-name',
templateUrl: './component_name.component.html',
styleUrls: ['./component_name.component.css']
Назовите MultiByteToWideChar (), тогда любой SysAllocString () или SysAllocStringLen ().
не забывают называть SysFreeString (), когда Вам больше не нужен BSTR.
Подробно (SysAllocStringLen () вариант †“это короче и быстрее):
Вызов MultiByteToWideChar () и передача 0 как пятые и шестые параметры. Это возвратит количество символов в Unicode, эквивалентном из строки ANSI. Помните, строка ANSI может содержать любые символы, не только ASCII, таким образом, любые попытки вручную вычислить количество символов Unicode, учитывая длину строки ANSI могут работать в некоторых случаях и не работать в других.
Выделяют буфер для BSTR с SysAllocStringLen (). Передайте 0 как первый параметр и количество символов Unicode как второй параметр. Вы теперь имеете правильно выделенный, но деинициализировали BSTR. Это уже имеет место для конечного нуля, и этот конечный нуль правильно помещается.
Вызов MultiByteToWideChar () во второй раз и на этот раз передают выделенный BSTR туда. Функция преобразует строку в Unicode и скопирует результат в BSTR. Теперь у Вас есть выделенный BSTR propely, содержащий Unicode, эквивалентный из Вашей строки ANSI.
Передача BSTR в VB. Наслаждаться.
Вызов SysFreeString () для освобождения BSTR.
У меня нет возражения на ответ ajryan, но вот альтернатива...
SysAllocString определяется для взятия параметра типа OLECHAR *. Вы даете ему символ *. Это не то же самое. Существуют определенные обстоятельства, когда они могли бы быть тем же самым, но Вы не можете зависеть от него. Таким образом, в первую очередь, необходимо преобразовать символ * в OLECHAR *. Существует макрос по имени A2OLE, который может сделать это для Вас, и в тех случаях, где символ * и OLECHAR * является тем же самым, макро-компиляции далеко ни к чему (я думаю).
См. эта страница для деталей A2OLE и его друзей.
, О, и кастинг Вашего символа * к BSTR на самом деле не изменяет его вообще, это ни BSTR, ни OLECHAR *.