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:
DLL-EntryPoint mit Funktion tauschen?
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:
// 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
ich hatte schon den Fall, daß die MMF an Punkt {2} weg war, wenn ich es dort prüfe
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.
http://fnse.de/S01/17P.gif