COM + Необязательные параметры функции
От: juicy_emad  
Дата: 17.03.07 13:17
Оценка:
Приветствую. Я занимаюсь созданием сервера 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...
Пока на собственное сообщение не было ответов, его можно удалить.