От:
Аноним
Дата: 24.09.07 07:31
Оценка:
добрый день.
Есть функц. принимаюшая параметр BSTR.
как передать этой функции тип переменную типа _bstr_t?
От:
Smal
Дата: 24.09.07 07:38
Оценка:
Здравствуйте, Аноним, Вы писали:
А>добрый день.
А>Есть функц. принимаюшая параметр BSTR.
А>как передать этой функции тип переменную типа _bstr_t?
Так и передать. Там есть соответствующий оператор преобразования.
С уважением, Александр
От:
Аноним
Дата: 24.09.07 07:47
Оценка:
S>Так и передать. Там есть соответствующий оператор преобразования.
я так и делал но че та компилер жалуется
get_Email1Address(BSTR param) —
_bstr_t _bstr_t_emailAress;
get_Email1Address(_bstr_t_emailAress)
get_Email1Address' : cannot convert parameter 1 from '_bstr_t' to 'BSTR *'
От:
Smal
Дата: 24.09.07 07:55
Оценка:
-1
Здравствуйте, Аноним, Вы писали:
S>>Так и передать. Там есть соответствующий оператор преобразования.
А>я так и делал но че та компилер жалуется
А>get_Email1Address(BSTR param) -
А>А>_bstr_t _bstr_t_emailAress;
А>get_Email1Address(_bstr_t_emailAress)
А>
А>А>get_Email1Address' : cannot convert parameter 1 from '_bstr_t' to 'BSTR *'
А>
Дык ты спрашивал про BSTR, а не про BSTR *.
Скорей всего здесь нужно просто (если память выделяет get_Email1Address)
BSTR res = 0;
get_Email1Address(&res);
_bstr_t _bstr_t_emailAress = res;
SysFreeString(res);
С уважением, Александр
Здравствуйте, <Аноним>, Вы писали:
S>>Так и передать. Там есть соответствующий оператор преобразования.
А>я так и делал но че та компилер жалуется
get_Email1Address(_bstr_t_emailAress.GetBSTR())
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Здравствуйте, frogkiller, Вы писали:
F>F>get_Email1Address(_bstr_t_emailAress.GetBSTR())
F>
Упс, не догадался, что ты возвращаешь значение из функции.
Как возвращать — тебе уже ответили.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Курица — это инструмент, с помощью которого одно яйцо производит другие.
От:
Кодт
Дата: 24.09.07 09:28
Оценка:
Здравствуйте, frogkiller, Вы писали:
Правильнее так:
get_Email1Address( _bstr_t_emailAddress.GetAddress() );
И не надо танцев с саблями вокруг голого BSTR.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
От:
Smal
Дата: 24.09.07 10:21
Оценка:
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, frogkiller, Вы писали:
К>Правильнее так:
К>К>get_Email1Address( _bstr_t_emailAddress.GetAddress() );
К>
В данном примере да, но если этот _bstr_t_emailAddress до этого был не пуст, то можно получить неприятный результат.
К>И не надо танцев с саблями вокруг голого BSTR.
Наверное, лучше будет так
...
get_Email1Address(&res);
_bstr_t_emailAress.Attach(res);
С уважением, Александр
От:
Кодт
Дата: 24.09.07 11:12
Оценка:
Здравствуйте, Smal, Вы писали:
К>>get_Email1Address( _bstr_t_emailAddress.GetAddress() );
S>В данном примере да, но если этот _bstr_t_emailAddress до этого был не пуст, то можно получить неприятный результат.
Согласен. Но это ещё один камень в огород переприсваиваемых переменных.
К>>И не надо танцев с саблями вокруг голого BSTR.
S>Наверное, лучше будет так
S>...
S>get_Email1Address(&res);
S>_bstr_t_emailAress.Attach(res);
Развивая мысль,
inline BSTR* outparam(_bstr_t& var)
{
var.Assign(NULL);
return var.GetAddress();
}
.....
_bstr_t email;
.....
get_Email1Address(outparam(email));
Да, кстати, вопрос к топикстартеру: что это за финно-угорская нотация
_bstr_t_ emailAddress?!
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить