Entwickler-Ecke

Sonstiges (Delphi) - Zugriffsverletzung


Gagamba - Mi 09.10.13 11:35
Titel: Zugriffsverletzung
Hallo,
ich weiss nicht, ob die Sparte 'Tutor' die richtige ist, aber ich probiers mal.
Ich bin seit einiger Zeit dabei, Programme von Delphi7 auf Delphi2009 umzustellen (wegen Unicode-Unterstützung). Das geht in der Regel gut, wenn auch mitunter holprig. In einer Application bekomme ich aber immer ein Zugriffsverletzung, der genaue Wortlaut ist:
"Zugriffsverletzung bei Adresse 77D1B1D0 in Modul 'User32.dll'. Schreiben von Adresse 00000045."
Diesen Fehler kann ich nicht lokalisieren: wenn ich debugge, tritt er plötzlich ganz woanders auf. Dasselbe gilt, wenn ich mir Zwischenmeldungen anzeigen lasse (mit Showmessage).
Was tun????
Danke für Tipps!
PS ich arbeite unter WindowsXP


Moderiert von user profile iconNarses: Topic aus Delphi Tutorials verschoben am Mi 09.10.2013 um 12:59


Narses - Mi 09.10.13 13:01

Moin!

user profile iconGagamba hat folgendes geschrieben Zum zitierten Posting springen:
Zugriffsverletzung bei Adresse 77D1B1D0 in Modul 'User32.dll'. Schreiben von Adresse 00000045.
Die niedrige Adresse lässt mich raten, dass du auf ein nicht erzeugtes Objekt zugreifst. :idea: Ansonsten ist das zu wenig Info, um was brauchbares dazu sagen zu können... :nixweiss:

cu
Narses


Gagamba - Mi 09.10.13 14:02

Hallo,
danke, das hatte ich auch vermutet, aber wie krieg ich raus, was das für ein Objekt sein kann?
wie gesagt haben weder Zwischenmeldungen noch Debugger zu einer Lokalisierung geführt?!
Danke...


jaenicke - Mi 09.10.13 14:41

FastMM wird vermutlich helfen, das ist vermutlich eher ein Speicherproblem.
http://sourceforge.net/projects/fastmm/
Stell da am besten den Full Debug Mode ein.


WasWeißDennIch - Mi 09.10.13 14:46

Oder man installiert sich madExcept [http://madshi.net/] (für privaten Gebrauch kostenlos).


GuaAck - Do 10.10.13 20:40

Hatte ähnliches Problem (Gelegentlicher Deadlock bei einer Multithread-Anwendung). Die Suche hat mich wohl schon einen Tag gekostet. Mit dem eben installierte madExcept hatte ich den Fehler in 1/2 h (inklusive Installation!) Danke für den Tipp!!

Gruß
GuaAck


Gagamba - Fr 11.10.13 13:44

Hallo zusammen,
ich hab jetzt mit MadExcept den Fehler sowiet lokalisieren können, dass ich ihn umgehen kann. Verstanden habe ich ihn allerdings immer noch nicht. kann aber MadExcept (trotzdem) wärmstens empfehlen, ohne das tool hätt ichs vielleicht oder nur zufällig repariert bekommen.
Danke nochmal!


jaenicke - Fr 11.10.13 22:29

Wenn du dazu etwas Code posten kannst, kann dir ja vielleicht jemand dabei helfen ihn zu verstehen. ;-)


Gagamba - Sa 12.10.13 01:15

Hallo,
nein, code kann ich insofern nicht liefern, als ich die fragliche Programmstelle einfach rausgeschmissen habe ohne Nachteile. Es ging um dei WMNCActivate-Methode in einem Formular, die ich überschrieben hatte, aber das brauch ich nicht mehr seit Unicode. Aber das zu lokalisieren hat halt leider gedauert, und letztlich erst mit MadExcept geklappt.
Siegfried