type conversion
От: Аноним  
Дата: 24.09.07 07:31
Оценка:
добрый день.
Есть функц. принимаюшая параметр BSTR.
как передать этой функции тип переменную типа _bstr_t?
Re: type conversion
От: Smal Россия  
Дата: 24.09.07 07:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>добрый день.

А>Есть функц. принимаюшая параметр BSTR.
А>как передать этой функции тип переменную типа _bstr_t?
Так и передать. Там есть соответствующий оператор преобразования.
С уважением, Александр
Re[2]: type conversion
От: Аноним  
Дата: 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 *'
Re[3]: type conversion
От: 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);
С уважением, Александр
Re[3]: type conversion
От: frogkiller Россия  
Дата: 24.09.07 07:55
Оценка:
Здравствуйте, <Аноним>, Вы писали:


S>>Так и передать. Там есть соответствующий оператор преобразования.

А>я так и делал но че та компилер жалуется

get_Email1Address(_bstr_t_emailAress.GetBSTR())
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[4]: type conversion
От: frogkiller Россия  
Дата: 24.09.07 08:00
Оценка:
Здравствуйте, frogkiller, Вы писали:

F>
F>get_Email1Address(_bstr_t_emailAress.GetBSTR())
F>


Упс, не догадался, что ты возвращаешь значение из функции.
Как возвращать — тебе уже ответили.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[4]: type conversion
От: Кодт Россия  
Дата: 24.09.07 09:28
Оценка:
Здравствуйте, frogkiller, Вы писали:

Правильнее так:
get_Email1Address( _bstr_t_emailAddress.GetAddress() );


И не надо танцев с саблями вокруг голого BSTR.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[5]: type conversion
От: 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);
С уважением, Александр
Re[6]: type conversion
От: Кодт Россия  
Дата: 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>>
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.