Re: COM + Необязательные параметры функции
От: Mckey Россия  
Дата: 19.03.07 05:06
Оценка:
Здравствуйте, juicy_emad, Вы писали:

_> Приветствую. Я занимаюсь созданием сервера COM. Переношу код из среды Delphi7. Проблема: В этом проекте есть несколько функций, имеющих одно и тоже имя. Вот их прототипы:


_>
_>    constructor Create; overload;
_>    constructor Create(LayersNum: Byte; NeuronsNum: Word); overload;
_>    constructor Create(LayersNum: Byte; NeuronsNum: TDynArrayOfInteger); overload;
_>    constructor Create(LayersNum: Byte; NeuronsNum: TDynArrayOfInteger;
_>                                          SynapsesNum: TDynArrayOfInteger); overload;
_>    constructor Create(LayersNum: Byte; NeuronsNum: TDynArrayOfInteger;
_>                       SynapsesNum: TDynArrayOfInteger; DontInit: Bool); overload;
_>


_> Насколько я понял, концепция COM не позволяет использование подобных перегруженых функций. Но, там есть тип необязательных параметров, под названием Optional (в книге написано, что параметры этого типа должны иметь тип Variant). Ну я так и сделал:


_>


_>Потом я делаю так (Код, просто, ради примера):


_>
_>procedure TTNet.Create(LayersNum, NeuronsNum_v: OleVariant;
_>  var NeuronsNum_a: OleVariant; SynapsesNum, DontInit: OleVariant);
_>begin
_>    Create(LayersCount, NeuronsCount);
_>end;
_>


_> И получаю ошибку на строчке


_>
Create(LayersCount, NeuronsCount);


>> [Error] uMain.pas(42): Not enough actual parameters


_> Что я сделал не так? Где я ошибаюсь? Как мне решить проблему переноса вышеуказанных функций в сервер COM?


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