Здравствуйте, 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?
А значения по умолчанию разве не стоит определить?