Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > DCOM


Автор: shilnik 22.12.2003, 06:34
Доброго времени суток всем!
Имеется: DCOM компонент в нем есть класс ARBLoader с методом Test, написанный на VB6, установлен на сервере. Для клиента от него есть VBR и TLB файлы.
Необходимо: в делфях на клиенте запустить метод Test класса ARBLoader.

Выполняю

Const
GUID_Loader:TGUID = '{----------}'
GUID_LoaderI:TGUID = '{----------}'
type
IARBLoader=interface
procedure Test;
end;
...
var
oLoader:IUnknown;
ARBLoader:IARBLoader;
nRet:Integer;
begin
oLoader:=CreateRemoteComObject('OMSSQL1',GUID_Loader);
nRet:=oLoader.QueryInterface(GUID_LoaderI,ARBLoader);
If nRet=0 Then
ARBLoader.Test; Здесь вылезает ошибка что-то про доступ и показывает код в ассемблере
oLoader:=nil;


Подскажите в чем я не прав. ПАЖА-А-АЛСТА.

Автор: Unregistered 22.12.2003, 07:39
из tlb сделай pas через import type library и его юзай.

Автор: shilnik 22.12.2003, 08:37
Pas я сделал, подключил к проекту. Дальше делаю:
unit Unit1;

interface

uses
..., ARBLoader_TLB;

type
TForm1 = class(TForm)
...
var
Form1: TForm1;
ARBLoader:CoclsARBLoad;
IARBLoader:_clsARBLoad;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
IARBLoader:=ARBLoader.CreateRemote('infchag2kpro'); ---Ошибка 'Access violation at address _______ in module Project1.exe. Read of address 00000000
IARBLoader.Test;
end;

end.

Что здесь не так?

Автор: Unregistered 22.12.2003, 09:56
в var объяви интерфейс который используешь

var ARBLoader:IARBLoader;

.......далее

ArbLoader:=CoARBLoader.createremote('имя_удаленного_компутера');
ArbLoader.Test;

должно все работать.

Автор: Unregistered 22.12.2003, 10:07
если этот ArbLoader зарегистрирован и у тебя и на компе где хочешь вызвать его методы. А также настроен этот самый DCOM

Автор: shilnik 22.12.2003, 11:17
Все заработало, спасибо. :-) (``)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)