AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi MMF wird (abundzu) nicht gefunden
Thema durchsuchen
Ansicht
Themen-Optionen

MMF wird (abundzu) nicht gefunden

Ein Thema von himitsu · begonnen am 4. Jul 2009
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#1

MMF wird (abundzu) nicht gefunden

  Alt 4. Jul 2009, 19:27
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz