Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Почему в XE2 BSTR не доступен как out параметр?


Автор: Чучмек 24.10.2018, 21:51
Delphi XE2, столкнулся с тем, что при описании методов COM сервера не могу задавать out-параметрам тип BSTR через редактор (в выпадающем списке отсутствует тип BSTR*)
В Delphi7 с этим, на сколько я помню, проблем не было.
Подправил в ручную Type Library (ProjectN.ridl  - добавил * к BSTR, ProjectN_TLB - в описании интерфейса заменил const на out ) - Работает.
Вопрос - Это глюк XE2 или решили отказаться от поддержки WideString?    

Автор: Romikgy 24.10.2018, 22:50
Цитата(Чучмек @  24.10.2018,  20:51 Найти цитируемый пост)
Вопрос - Это глюк XE2 или решили отказаться от поддержки WideString?    

у них обычный string стал юникодным...

Автор: Чучмек 25.10.2018, 13:21
Цитата(Romikgy @  24.10.2018,  22:50 Найти цитируемый пост)
у них обычный string стал юникодным...

Ну это понятно.  Вопрос о поддержке типа BSTR microsoft-ом в технологии COM. (Стандарт для строк в COM).
Сейчас специально посмотрел в D7 - тот же список типов, что и в XE2. BSTR есть, а BSTR* нет, хотя редактор позволяет звёздочку дописать в ручную.
Непонятно... Я что-то видать недопонимаю. Если в списке нет, значит не рекомендуется, значит по стандарту возврат строк из COM должен идти через Variant (OleVariant). Другого объяснения придумать не могу.  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)