Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

OLE сервер

Delphi , Технологии , OLE

OLE сервер

Сервер - не суетись под клиентом!

Следующий код компилируется без проблем. Он не так ясен и понятен, но он может вам помочь:


unit Unit1;

interface
  function OLEfunction(x, y, z: integer): integer; cdecl; export;

implementation

function OLEfunction(x, y, z: integer): integer;
begin

end;

procedure buildOLEstructure;
var
  F: pointer;
begin
  F := @OLEfunction; { Компилируется без проблем ... }
end;

end.

Используйте метод, приведенный ниже. Вы должны объявить одну вызывающую функцию к каждой комбинации параметров, которые вы собираетесь передавать. Затем вы вызываете вызывающую функцию (сорри) и передаете ей как указатель функцию, которую вы хотите вызвать (еще раз сорри). Непонятно? Поясню на примере:


library Pcdecl;

function olefunction(a1 : pchar; a2 : longint; x : integer )  : integer;

cdecl; export;
begin

end;

function callolefunction(func : pointer; a1 : pchar; a2 : longint; x :
integer)  : integer;

assembler;
asm

push        x                   { помещаем параметры в обратном порядке }
push        word ptr a2 + 2     { если 32-битная величина передается в
                                  этих двух шагах, то начинаем с самой
                                  "высокой" (high) части }
push        word ptr a2
push        word ptr a1 + 2
push        word ptr a1
call        func
add        sp, 10               { восстанавливаем стек добавлением вытолкнутых
                                  байтов. Обратите внимание на то, что func не
                                  была вытолкнута }
end;

procedure buildolefunction;
var

f         : pointer;
reslt     : integer;
begin

f := @olefunction;
{ --- }
reslt := callolefunction(f, 'Здравствуй, мир', 1000000, 25);
{ --- }
end;

begin

{ --- }
end.

На моем компьютере это компилируется без проблем. Должно работать и у вас. Предупреждение. Обращение к методам должно быть немного другим, нежели к функциям.

Статья OLE сервер раздела Технологии OLE может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: OLE ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-04-24 22:55:34
2024-04-25 16:18:42/0.0066580772399902/2