powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Где в скомпилированном коде хранится GUID интерфейса?
4 сообщений из 29, страница 2 из 2
Где в скомпилированном коде хранится GUID интерфейса?
    #40007713
Artem.1st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может ты не вкурил пример. TMyObj не поддерживает IMyIntfEx, соответственно QueryInterface не должен вернуть ничего, но он возвращает другой интерфейс. Это происходит потому, что GetTypeData(TypeInfo(IMyIntfEx)).GUID для интерфейсов без гвида возвращает нули, что соответствует IInterface. Т.е. запрашиваешь какой-то интерфейс без гвида, а по факту получается IInterface:-(
Я искренне верил, что собеседник пытается помочь, он написал "Пример”,
который к текущей теме(про GUID) никак НЕ относится.
На мой вежливый комментарий, что "Пример” не подходит(к этой теме),
быстро появляется "ъъъъъ" и пишет оскорбления. Ну, детский сад на форуме...

Ниже см. “Пример”, к нему претензий НЕТ, ну, обычная логическая ошибка(AV в обоих случаях)
procedure DoSome; не вызовется никогда!
...
Рейтинг: 0 / 0
Где в скомпилированном коде хранится GUID интерфейса?
    #40007715
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem.1st,

Ну ты даёшь
Вроде несколько раз сказали одно и то же
Ты так до сих пор и не понял, о чём тут речь
Ну может это тебе поможет. Я не знаю уже как и что тебе объяснять

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
type
  IMyIntf = interface(IInterface)
    procedure DoSome;
  end;

  IMyIntfEx = interface(IMyIntf)
    // ['{CD20BA92-3815-4F66-9F36-63FACEF01676}']
    procedure DoSomeEx;
  end;

  TMyObj = class(TInterfacedObject, IMyIntf)
    procedure DoSome;
  end;

procedure TMyObj.DoSome;
begin
  Writeln(Self.ClassName);
end;

var
  I: IInterface;
  My: IMyIntfEx;

begin
  I := TMyObj.Create;

  if (I.QueryInterface(GetTypeData(TypeInfo(IMyIntfEx)).GUID, My) = 0) then
  begin
    My.DoSomeEx;
  end;

  Write('Press Enter to quit');
  Readln;
end.
...
Рейтинг: 0 / 0
Где в скомпилированном коде хранится GUID интерфейса?
    #40007751
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий

эммм...
зачем?!
А чего ты меня-то спрашиваешь?.. Подозреваю что для реализации множественного наследования, которое дельфи сама не поддерживает.
Но это не точно.
...
Рейтинг: 0 / 0
Где в скомпилированном коде хранится GUID интерфейса?
    #40007778
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp
ziv-2014,

Была такая библиотека TForge, так там автор интерфейсы к recrod'ам прикручивал :)

TChromium https://github.com/salvadordf/CEF4Delphi примерно тем же занимается.
...
Рейтинг: 0 / 0
4 сообщений из 29, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Где в скомпилированном коде хранится GUID интерфейса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]