Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2016, 23:43   #11
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Код:
type
  IMyObject = interface(IInterface)
     [GUID лень придумывать от руки]
     procedure method1; stdcall;
     function sum(a,b:Integer):Integer; stdcall;
  end;

  TMyObject = class(TInterfacedObject, IMyObject)
   
     procedure method1; stdcall;
     function sum(a,b:Integer):Integer; stdcall; 

   //Конструкторы, прочая лабуда...
   end;


   function createMyObject:IMyObject;


//Реализация
function createMyObject:IMyObject;
begin
  Result := TMyObject.Create;
end;


procedure TMyObject.method1;
begin
 showMessage('123');
end;

function TMyObject.sum(a,b:Integer):Integer; stdcall; 
begin
 REsult := a+b;
end;

//test

io:IMyObject;

io:=createMyObject;
io.method1;
showMessage(io.sum(4,6));
Интерфейс и является адаптером для объекта.
Человек_Борща вне форума Ответить с цитированием
Старый 31.01.2016, 22:42   #12
IvaniuS
Форумчанин
 
Аватар для IvaniuS
 
Регистрация: 16.04.2007
Сообщений: 225
По умолчанию

Спасибо, теперь действительно есть над чем работать а то все до чего меня хватило:
Первая часть
Код:
  Log('LoadSettings',true);
  Debug:=true;
  SuperDebug:=false;
  if not Assigned(SLVariables) then SLVariables:=TStringList.Create;
  SLVariables.AddObject('bDebug',TObject(@Debug));
  SLVariables.AddObject('bSuperDebug',TObject(@SuperDebug));
  SendData(0,(@SLVariables));
в DLL Plugin:
Код:
Function SendData(Code: Cardinal; p1, p2, p3: pointer): Pointer; Stdcall;
Var
  i: integer;
  SLVariables:TStringList;
Begin
  Case code Of
    0: SLVariables:=TStringList(p1^);
  End;
  for I := 0 to SLVariables.Count-1 do
  begin
    case SLVariables.Strings[i][1] of
      'b':MsgPrint(SLVariables.Strings[i],BoolToStr(Boolean(pointer(SLVariables.Objects[i])^)));
    end;
  end;
End;
Вашим кодом выше компилятор PaxCompiler вешается, там Delphi 2010, а по моему в нем не было еще интерфейсов.

Последний раз редактировалось IvaniuS; 31.01.2016 в 22:59.
IvaniuS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление socket'ом чужого приложения, как в WPE PRO Reimscher Работа с сетью в Delphi 13 05.08.2015 17:14
Управление компонентами другого приложения/окна OmegaBerkut Общие вопросы Delphi 9 16.09.2013 13:03
Plugin для IE draiffer C/C++ Сетевое программирование 0 29.03.2012 18:11
QIP Plugin W0LF Общие вопросы Delphi 3 24.04.2011 11:28
Управление настройками компьютера из приложения Delphi Saili Общие вопросы Delphi 2 05.12.2006 11:41