AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

AddModuleUnloadProc und DEC

Ein Thema von TurboMagic · begonnen am 7. Aug 2021 · letzter Beitrag vom 10. Aug 2021
 
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.038 Beiträge
 
Delphi 12 Athens
 
#1

AddModuleUnloadProc und DEC

  Alt 7. Aug 2021, 15:07
Hallo,

in der DEC (die ich ja "geerbt" habe) ist folgender Code drin:

Delphi-Quellcode:
Unit DECHashBase;

[..]

procedure ModuleUnload(Instance: NativeInt);
var // automaticaly deregistration/releasing
  i: Integer;
begin
  if TDECHash.ClassList <> nil then
  begin
    for i := TDECHash.ClassList.Count - 1 downto 0 do
    begin
      if NativeInt(FindClassHInstance(TClass(TDECHash.ClassList[i]))) = Instance then
        TDECHash.ClassList.Remove(TDECFormat.ClassList[i].Identity);
    end;
  end;
end;

initialization
  AddModuleUnloadProc(ModuleUnload);

  TDECHash.ClassList := TDECClassList.Create;

finalization
  RemoveModuleUnloadProc(ModuleUnload);

  TDECHash.ClassList.Free;
end.
Der registriert eine Prozedor ModuleUnload, die irgendwie beim Entladen eines Packages
aufgerufen wird, soweit ich die F1 Hilfe für AddModuleUnloadProc verstehe.

In der ModuleUnload werden alle im globalen Klassenregistrierungsmechanismus der DEC
(da kann man über eine ID den richtigen Algorithmus finden und eine Instanz davon erzeugen,
sofern der Algorithmus in dieser TDECHash.ClassList registriert ist.

Nun macht dieser ModuleUnload Code Ärger mit dem C++ Builder, der hat mit der Variable i
da drin scheinbar irgend ein Problem. Die Frage für mich ist aber: wozu brauche ich den
Code in ModuleUnload überhaupt? Reicht es nicht aus, dass ich diese Liste in finalization
freigebe?

Wenn diese Fragestellung geklärt ist, dürfte es auch zeitnah ein neues Rerlease 6.3 geben.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz