Как передать массив строк от клиента к серверу с помощью DCOM

Все особенности программирования под платформу Wintel
Ответить
leucopsis
Сообщения: 2
Зарегистрирован: 01 ноя 2010, 15:11

01 ноя 2010, 15:20

Добрый день!

Пытаюсь передать массив строк от клиента к серверу через DCOM, и ни как не получается. Делаю так:
На стороне клиента:
------------------------------------------------------------------
procedure TForm2.BitBtn1Click(Sender: TObject);
var
Mas: Variant;
begin
Mas:= VarArrayCreate([0, 3], varVariant);
Mas[0]:= VarArrayHighBound(Mas, 1);
Mas[1]:= 'Быть или не быть?';
Mas[2]:= 12.34567;
Mas[3]:= VarArrayOf( [7, 354, 0, 21, 66, 189] );
FEasyDCOM.talk_Array(Mas,GetComputerName);
end;
------------------------------------------------------------------
На стороне сервера:
--------------------------------------------------------------------
procedure TEasyDCOM.talk_Array(arr: OleVariant; const compName: WideString);
var
s : string;
begin
S:= VarToStr(arr[1] ); //вылетает ошибка OLE Esception "Invalid Argument"
end;
------------------------------------------------------------------

У кого-нибудь был опыт подобной передачи? Заранее благодарен!
leucopsis
Сообщения: 2
Зарегистрирован: 01 ноя 2010, 15:11

01 ноя 2010, 18:36

leucopsis писал(а):Добрый день!
Пытаюсь передать массив строк от клиента к серверу через DCOM, и ни как не получается.
Отбой, ребята, разобрался - неправильно описал интерфейс COM-объекта. Поправил, и приведенный текст заработал. Тема закрыта.
Ответить