Здравствуйте Максим Алексейкин, Вы писали:
МА>Здравствуйте Аноним, Вы писали:
А>>>>Это не выход... Зачем мне [in,out] параметры, если он у меня по логике должен быть out, это помоему еще
МА>Всё конечно должно быть [out], с этим у тебя всё верно.
А>> VBScript будет передавать VARIANT*.
МА>Вот именно VARIANT. Даже в VB требуется жесткое совпадение типов для параметров ByRef. Нельзя передать для ByRef String переменную типа Variant. Всё дальнейшее обсуждение не имеет смысла. Причина ясна и надо лишь решить как это обойти. Боюсь без изменения типов параметров (только ByRef) не обойтись.
А>>Это мне не нравится, потому что в Visual Basic можно все по нормальному сделать, а в скрипте нет!!!
МА>В VB подобное могло срабатывать из за не явного приведения типов, VBScript естественно так не умеет.
А>>Должен же быть какой то выход, не может же быть все так тупо...
МА>
А>>Нахрена тогда вообще эта вся возня с типами, все бы сделали через Variant и все!!!!
МА>Так и придется делать.
МА>Удачи.
Придется все оставить, как было... Истина, где-то там!!!
P.S. Тестил я тут один COM обьект написанный на Visual Basic, все работает и в Visual Basic и у VBScript, тама метод обьекта был обьявлен так:
Sub Method( ByRef outVal as string);
И все работает!!!
Но мои COM+ обьекты написаны на Visual C++, на базе ATL, и ясно что уже никто ничего переделывать не будет, тем более тама support-ы MTS, pooling objects, которые неизвестно как делаются на Visual Basic, да и в принципе все можно все сделать по уму и на Visual C++,
но есть что-то, которое мы не знаем...
Вот так вот!!!