![]() |
Methode löst AV aus, wenn über Interface aufgerufen
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe hier ein Interface (IGenetix) und dessen zugehörige Klasse (TGenetix).
Wenn ich eine Methode über eine Variable der Klasse direkt aufrufe, gibt es keine Probleme. Wenn ich die Methode dann aber über ein Interface aufrufe, wird eine Access Violation ausgelöst. Der Code für die DLL ist angehängt. Es wird erst einmal nur GetGenetix() aufgerufen. |
Re: Methode löst AV aus, wenn über Interface aufgerufen
Hallo,
ändere doch mal die lokale Variable in GetGenetix (gen) zum Typ IGenetix. Ich vermute, irgendwo stimmt die Referenzzählung sonst nicht. Falls das nichts hilft, dann gehe mit Einzelschritt durch GetByte(), um den Fehler einzugrenzen. Gruß xaromz |
Re: Methode löst AV aus, wenn über Interface aufgerufen
Hallo,
noch mal dein Code
Delphi-Quellcode:
Wie sieht es damit aus ?
Gen.Assign(PChar(local)); // läuft
WriteLn(Gen.GetByte('@')); // läuft Result := Gen; WriteLn(Result.GetByte('@')); // läuft nicht (AV)
Delphi-Quellcode:
var
IGen: IGenetix; begin ... iGen:= Gen; WriteLn(iGen.GetByte('@')); // ??? Result:= Gen; end; Heiko |
Re: Methode löst AV aus, wenn über Interface aufgerufen
Zitat:
Zitat:
Es ist auch egal, welche Methode. Auch IGenetix.Assign funzt nicht TGenetix.Assign aber schon. [ADD] OK ich habe das Problem jetzt gelöst. Unverständlicherweise funktioniert es nicht mit CDECL. Mit REGISTER und PASCAL gibt es keine Probleme. Danke, dass ihr euch den Code angeschaut habt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 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