Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

AW: Benutzen von Klassen aus einer DLL

  Alt 14. Sep 2010, 08:25
Nein, selbst wenn du es implementierst (in der DLL), es dann in der DLL aber nicht benutzt, dann wird dieses vom Compiler wegoptimiert.
Nun hast du ja nocheine Implementation dieser Klasse in der EXE, wo du nun diese Funktion nutzen willst und dieses hat seine eigene RTTI und weiß von der Wegoptimierung nix.

Delphi-Quellcode:
function Met1; virtual/overload;
procedure Met2; virtual/overload;
procedure Met3; virtual/overload;
z.B.
in DLL alles irgendwie implementiert (eventuell auch erst in Nachfahren), aber nur einen Teil irgendwo verwendet/verlinkt.

In der Exe willst du aber dieses, alles oder nur'n anderen Teil nutzen.

also, in der DLL:
VMT-Index 0 = Met1
VMT-Index 1 = Met3

in der EXE:
VMT-Index 0 = Met1
VMT-Index 1 = Met2
VMT-Index 2 = Met3

Ruft man hier in der Met2 auf, dann wird in der DLL dafür aber Met3 ausgeführt.
Und bei Met3 knallt es sowieso, da es da nix gibt.

Wenn in der DLL garnichts irgendwie eingebunden ist, dann seht auch nichts in dieser VMT.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat