Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> COM обьект, ошибка при работе с функцией 
:(
    Опции темы
Neox_GeForce
  Дата 27.10.2008, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 14.11.2007
Где: Украина

Репутация: нет
Всего: нет



Задали нам лабораторну. я все сдела как надо но вот ошибка вилетает.
user posted image
а вот и код.
Сервер
Код

unit Unit2;

{$WARN SYMBOL_PLATFORM OFF}

interface

uses
  Windows, ActiveX, Classes, ComObj, Server_TLB, StdVcl;

type
  TServerManager = class(TTypedComObject, IServerManager)
  protected
    function GetArrayFromServer: OleVariant; stdcall;
    function GetObjectFromServer: HResult; stdcall;
    function GetStringFromServer: OleVariant; stdcall;
    {Declare IServerManager methods here}
  end;

implementation

uses ComServ,Variants;

function ArrayToVariant(ar:array of String):Variant;
var
Min,Max,i:integer;
begin
Min:=Low(ar);
Max:=High(ar);
result:=VarArrayCreate([Min,Max],varVariant);
for i:=Min to Max do begin
result[i]:=ar[i];
end;
end;

function TServerManager.GetArrayFromServer: OleVariant;
var
strings:array[1..2] of String;
begin
strings[1]:='First String';
strings[2]:='Second String';
result:=ArrayToVariant(strings);
end;

function TServerManager.GetObjectFromServer: HResult;
begin

end;

function TServerManager.GetStringFromServer: OleVariant;
begin
  result:='This string from server!';
end;

initialization
  TTypedComObjectFactory.Create(ComServer, TServerManager, Class_ServerManager,
    ciMultiInstance, tmApartment);
end.


вот код самого Клиента 
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Server_TLB, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  serverManager: IServerManager;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
try
serverManager:=CoServerManager.Create;
except
ShowMessage('Cannot connect to server!');
end;
label1.Caption:=VarAsType(serverManager.GetStringFromServer, varOleStr);
label2.Caption:=VarArrayGet(serverManager.GetArrayFromServer,[1]);
label3.Caption:=VarArrayGet(serverManager.GetArrayFromServer,[2]);
end;

end.

 

помогите! Как устранить ету ошибку и добится работоспособности Программы?


Это сообщение отредактировал(а) Neox_GeForce - 27.10.2008, 18:48


--------------------
user posted image
Челябинские программисты настолько суровы, что обходятся без компиляторов.
Челябинские программисты настолько суровы, что считают ассемблер недопустительной роскошью - они вручную магнетизируют участки жесткого диска.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0412 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.