Seite 1 von 1

[erledigt] Fst-Editor (64bit): Zugriffsverletzung bei "More Buttons"-Menü

Verfasst: 20.05.2023 21:10:47
von Thomas U.
Nabend,

der Zufall bescherte mir gerade den Fund einer hier noch nicht gelisteten Zugriffsverletzung, und zwar im Fst-Editor (3.5.2) in der 64bit-Version unter Win11. In der 32bit-Version tritt das Problem nicht auf, mit Win7 in beiden Versionen nicht.

Ausgelöst wird sie, wenn man - entsprechend zusammengeschobenes Menü/Fenster vorausgesetzt - auf einen beliebigen "More Buttons"-Pfeil klickt, mit denen eigentlich die versteckten Menüeinträge aufklappen sollten.

Bild

Vielleicht kann ja mal wer schauen, ob das auch auf Win10 zutrifft - 10 und 11 hatten bei vergangenen Fehlern meist das gleiche, von Win7 abweichende Verhalten.

Re: Fst-Editor (64bit): Zugriffsverletzung bei "More Buttons"-Menü

Verfasst: 20.05.2023 21:19:24
von Alwin Meschede
Ja, Windows 10 das selbe.

Re: Fst-Editor (64bit): Zugriffsverletzung bei "More Buttons"-Menü

Verfasst: 21.05.2023 19:58:47
von Carsten Hölscher
Es passiert in der Menükomponente und zwar hier

Code: Alles auswählen

procedure TSpTBXPopupWindowView.SetIsToolbar(const Value: Boolean);
begin
  PBoolean(Integer(Self) + (Integer(GetPropInfo(TSpTBXPopupWindowView, 'IsToolbar').GetProc) and $00FFFFFF))^ := Value;
end;
Siehe dazu auch:

https://hallvards.blogspot.com/2004/05/ ... -only.html

Wer gerade ausreichend Zeit und Muße hat, kann sich ja mal schlau machen, wie man das in 64 bit richtig löst.

Carsten

Re: Fst-Editor (64bit): Zugriffsverletzung bei "More Buttons"-Menü

Verfasst: 21.05.2023 20:19:37
von F. Schn.
Das scheint mir analog zu dem Problem hier zu sein: viewtopic.php?p=339835#p339835 : Unter 64 bit sollten Zeiger nie in Integer umgewandelt werden, sondern in Int64 oder besser NativeInt. Ausnahmen sind nur möglich, wenn das Ergebnis nicht mehr als Zeiger verwendet wird, aber das ist hier ja mit dem ^ der Fall. (Ob die Bitmaske zusätzlich auch noch angepasst werden muss, habe ich jetzt nicht geprüft.)

PS: Grundsätzlich sollte es möglich sein, nach allen Integer(Self) und Integer(p zu suchen.

Re: Fst-Editor (64bit): Zugriffsverletzung bei "More Buttons"-Menü

Verfasst: 21.05.2023 20:55:48
von Johannes
Du hast doch von Toolbar2000 den Sourcecode, mach doch einfach die Property "IsToolbar" schreibbar …