powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / BSTR в COM
8 сообщений из 8, страница 1 из 1
BSTR в COM
    #32537543
MikeG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!

В COM принято строки передавать как BSTR (WHCAR *).
Кто-нибудь знает, как принято передавать константные строки?
(т.е. тип const WCHAR*, известный IDL-у)

Спасибо
...
Рейтинг: 0 / 0
BSTR в COM
    #32538160
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всмусле ?
еслия понял то можно так
BSTR str = L"TEST";

commethod(str);

или
WideString wstr = "TEST"
commethod(wstr);


 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
BSTR в COM
    #32539565
MikeG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не ну вот когда мы реализуем функции, принимающие строки, то мы объявляем их как const char*, чтобы не испортить строчку.
Я пока в COM'е нашел два стандартных типа BSTR и LPBSTR.
Это принятый стандарт, его понимают VB и т.д. и у себя показывают как string.

А как же быть с гарантией того, что строка не будет испорчена внутри commethod'а?

Т.е. есть ли в COM аналог LPCSTR?
...
Рейтинг: 0 / 0
BSTR в COM
    #32539742
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну у меня проблем пока не было
...
Рейтинг: 0 / 0
BSTR в COM
    #32539868
Фотография Палестинец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне кажется,что при передаче BSTR подразумевается, что передается константа. Изменение строки "напрямую" не используется(имхо)..

Если подразумевается что строка может изменится в методе - надо передавать параметр "по ссылке" ([out]LPBSTR) и возвращать как бы новую строку.
...
Рейтинг: 0 / 0
BSTR в COM
    #32548456
MikeG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это так.
Но я прикололся:

dim s as string
s="hello"
и передаю эту строчку в com method как входной параметр, внутри которого я изменяю эту строчку на hallo, например.
И после вызова метода моя строчка изменена - разве это хорошо??
...
Рейтинг: 0 / 0
BSTR в COM
    #32548738
Фотография Палестинец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
плохо..что же делать?

а! - придумал!
не меняй!!? :) - нельзя и точка.

тем паче если вдруг кто через L"" параметр определит - AV сразу выскочит..
...
Рейтинг: 0 / 0
BSTR в COM
    #32549367
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у COM обьектов ставится параметр IN или OUT - передача ссылки по параметру не предусмотрена, потому как запустить обьект ты можешь на другом компьютере в другой части света.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / BSTR в COM
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]