![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
IDL, size_is() [Win2k]
VaS © (2002-09-16 13:59:00)Delphi 6,7.
Пишем в TypeLibrary Editor:
...
HRESULT Method1([out, size_is(, *piCount)] double ** ppfData);
...
Жмем рефрешь, видим сообщение "Invalid Attribute: size_is".
Вопрос: что делать? Нужен именно сом-сервер с библиотекой типов и с параметром - массивом переменного размера.
VaS (2002-09-16 16:19:00) [1]Спасибо, эти варианты мне известны. Т.е. начинают оправдываться мои самые худшие предположения :(((
Набережных С. (2002-09-16 15:36:00) [2]Не знаю, как обстоят дела в 6 и 7, но не думаю, что они могут генерить Proxy/Stub DLL(хотя может и ошибаюсь). В 5-й этого точно нет. И если это так, то не получится. Стандартный TypeLib маршаллер поддерживает только определенный, весьма ограниченный, набор типов. Можно предложить несколько вариантов: написать самому Proxy/Stub DLL, реализовать в объекте IMarshal и самому заняться маршаллингом для данного объекта, либо, самое простое, использовать вариантный массив. В последнем случае можно написать ActiveX компонент, который клиенты смогут использовать для упаковки-распаковки массива, если только предполагается возможность написания клиентов не только тобой.
VaS (2002-09-16 14:27:00) [3]up