Re[3]: Как задать тип для out-параметра?
От: Аноним  
Дата: 11.11.02 12:03
Оценка:
Здравствуйте Аноним, Вы писали:

А>Здравствуйте Vi2, Вы писали:


Vi2>>Здравствуйте Аноним, Вы писали:


А>>>Есть asp страница, в которой используется VBScript, и вызывется метод COM обьекта:


Vi2>>

А>>>[id(14), helpstring("method Get")] HRESULT Get([in] BSTR szSession, ..., [out] BSTR *xmlResultXML, [out] BSTR *szErrorName) — это из интерфейса IDispatch

А>>>Как видно с примера возвращаются два параметра типа стринг.
А>>>...
А>>>Говорят что типа неправильно построен сам метод обьекта, а именно не правильно формируются out-параметры, что их нужно якобы предавать по ссылке, типа так:

Vi2>>

А>>>[id(14), helpstring("method Get")] HRESULT Get([in] BSTR szSession, ..., [out, ref] BSTR *xmlResultXML, [out,ref] BSTR *szErrorName), здесь out параметры передаются по ссылке, но это тоже не помогло.

Vi2>>Сразу замечу, что ДВА приведенных выше отрывка из IDL идентичны.

Vi2>>

А>>>В чем могут быть проблемы?
А>>>Как быть с конролем типов для out параметра?

Vi2>>Слушай, раз VBScript нормально понимает [in] BSTR szSession, то попробуй [[b]in,[/b]out] BSTR *xmlResultXML.

А>Это не выход... Зачем мне [in,out] параметры, если он у меня по логике должен быть out, это помоему еще хуже чем использовать в качестве выходного параметра тип Variant. Мне осталось установить чего все нормально работает в Visual Basic, а в VBScript нет!!!

А>Должно работать!!!


Vi2>>Сразу замечу, что ДВА приведенных выше отрывка из IDL идентичны.

Несогласен!!!
Первое возвращается по указателю, а второе по ссылке и значение не может менятся вызывающей функцией!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.