![]() |
MMF wird (abundzu) nicht gefunden
Ja also, ich verzweifle grad daran, daß laut OpenFileMapping, aus mir unerklärlichen Gründen und nach ständig unterschiedlichen Zeiten (Befehlzszeilen) eine MMF einfach nicht mehr existieren soll.
Es handelt sich dabei um diesen Code: ![]() Die MMF sollte eigentlich nie freigegeben werden (solange der Prozess existiert, da ich einen Aufruf nicht mit CloseHandle schließe). Leider ist mal kurz nach dem erstellen die MMF weg oder erst nach ein/zwei Code-Zeilen und manchmal ist sie am Ende der EntryPoint-Prozedur (in der DLL) noch vorhanden und fehlt dann erst drüben in der EXE. Nur irgendwie bleibt der Zeitpunkt wann sie angeblich verschwindet unterschiedlich und daß bei fast jedem Debugvorgang. Es kam sogar schon vor, daß direkt nach einem erfolgreichen CreateFileMapping die MMF nicht per OpenFileMapping geöffnet werden konnte. Und laut GetLastError "Name existiert nicht" existiert die MMF wohl nicht, obwohl sie existieren sollte. selbst wenn nix passiert, ändert sich das Ergebnis...
Delphi-Quellcode:
ich hatte schon den Fall, daß die MMF an Punkt {2} weg war, wenn ich es dort prüfe
// aus Procedure EntryPoint in TestDLL.dpr
{1} Error := (Map = 0) or not Assigned(Data); {2} If not Error Then If Assigned(Data.OldEntryPoint) Then Begin und sobald ich den Prüfcode an Punkt {1} auch noch einfüge, dann war an beiden Punkten die MMF noch da, dabei passiert bei dieser Zuweisung doch rein garnichts mit der MMF. ja und das ist mein einfacher Prüfcode ... beim Debuggen kann ich da ja bequem TempMap auslesen
Delphi-Quellcode:
TempMap := OpenFileMappingA(FILE_MAP_READ or FILE_MAP_WRITE, False, @Name);
TempData := MapViewOfFile(TempMap, FILE_MAP_READ or FILE_MAP_WRITE, 0, 0, 0); If (TempMap = 0) or not Assigned(TempData) Then ; Also ich hab absolut keine Ahnung, was mit der MMF los ist, denn die Aufrufe sind richtig so (auch wenn sie halt nicht so richtig wollen) und von der Programmlogic her sollte es (hoffentlich) auch stimmen. Ich bin praktisch fast am Verzeifeln und weiß einfach nicht mehr, was ich noch groß machen soll. ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19: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