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

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

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

commethod(str);

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


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

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

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

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

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

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

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


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