AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi MMF und IIS (ISAPI) - Mapfile kann nicht erstellt werden
Thema durchsuchen
Ansicht
Themen-Optionen

MMF und IIS (ISAPI) - Mapfile kann nicht erstellt werden

Ein Thema von LD93 · begonnen am 3. Jan 2009 · letzter Beitrag vom 12. Jan 2009
Antwort Antwort
LD93

Registriert seit: 18. Aug 2007
14 Beiträge
 
#1

MMF und IIS (ISAPI) - Mapfile kann nicht erstellt werden

  Alt 3. Jan 2009, 18:12
Hallo alle zusammen,

ich habe bei euch schon oft helfende Informationen gefunden, aber jetzt muss ich doch aktiv fragen:
Ich habe vor Daten zwischen einem Delphi-Programm (exe) und einem Webservermodul (dll fürn iis) auszutauschen. Ich habe MMF ausgewählt, nur leider hänge ich hier schon beim ausprobieren fest.

Zusammengeklauter Code zum Initialisiren in IIS-Modul:
Delphi-Quellcode:
procedure TWebModule1.WebModuleCreate(Sender: TObject);
begin
  //MapFile erstellen falls noch nicht vorhanden
  MapHandle:= CreateFileMapping($FFFFFFFF,nil,PAGE_READWRITE,0,Sizeof(TData),MapName);
  If MapHandle > 0 then
   Begin
    //Auf den Speicherbereich zugreifen
    PData := MapViewOfFile(MapHandle,FILE_MAP_ALL_ACCESS,0,0,0);
      else
       Begin
        raise exception.create('Mapfile konnte nicht geöffnet werden.');

       End;
   End
    else
     begin
      raise exception.Create('Mapfile konnte nicht erstellt werden.');

     end;
end;
Definitionen:
Delphi-Quellcode:
Const MapName = 'Austausch';

Type TData = Packed Record
      Ready : Boolean;
      Data2 : String[20];
End;
  PTData = ^TData;

...
  private
     MapHandle: THandle;
   PData: PTData;
Aufruf:
response.Content:=pdata.Data2; Destroy:
Delphi-Quellcode:
 UnMapViewOfFile(PData);
 CloseHandle(MapHandle);

Nun habe ich noch das Programm, welches (eigentlich) in diese MMF schreiben soll (änderung bei aufruf: PData.Data2 := Edit1.Text;).

Wenn ich das Programm mehrfach starte klappt (zwischen den programmen) alles, mit dem Webservermodul auch (also, wenn ich statt Programm die DLL mehrfach lade).

Sobald ich die DLL ausführen lasse und (unter dem Adminstratorkonto) das Programm starte bekomme ich die Meldung "'Mapfile konnte nicht erstellt werden.'"


Ich kann mir nicht helfen - wisst ihr weiter??

mfg

Lucas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: MMF und IIS (ISAPI) - Mapfile kann nicht erstellt werden

  Alt 4. Jan 2009, 14:13
Hast du mal geschaut, warum es nicht geht? (bzw. was sagt GetLastError)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
LD93

Registriert seit: 18. Aug 2007
14 Beiträge
 
#3

Re: MMF und IIS (ISAPI) - Mapfile kann nicht erstellt werden

  Alt 5. Jan 2009, 14:08
Hallo,

ich wüsste ja selber gerne, warum es nicht funktioniert...

Die Funktion gibt 0 zurück (ich rufe sie nach onCreate auf)

Ich hab noch nie mit MMF's gearbeitet und will Daten aus einem Laufenden Programm heraus im Web anzeigen.

Weiß keiner weiter??

mfg

Lucas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: MMF und IIS (ISAPI) - Mapfile kann nicht erstellt werden

  Alt 6. Jan 2009, 19:39
ja, bei Fehler gibt diese Funktion eine 0 zurück
und der Fehlercode wird per SetLastError gespeichert ... läßt sich also bei einem Fehler über GetLastError abrufen

Delphi-Quellcode:
procedure TWebModule1.WebModuleCreate(Sender: TObject);
begin
  //MapFile erstellen falls noch nicht vorhanden
  MapHandle:= CreateFileMapping($FFFFFFFF,nil,PAGE_READWRITE,0,Sizeof(TData),MapName);
  If MapHandle > 0 then
    begin
      ...
    end
    else
      Raise exception.Create('Mapfile konnte nicht erstellt werden.'#10#10
        + SysErrorMessage(GetLastError));
end;
GetLastError gibt den letzen Fehlercode zurück
und SysErrorMessage wandelt diesen in einen String um.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
LD93

Registriert seit: 18. Aug 2007
14 Beiträge
 
#5

Re: MMF und IIS (ISAPI) - Mapfile kann nicht erstellt werden

  Alt 8. Jan 2009, 18:52
so kommt "Access is denied" raus...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: MMF und IIS (ISAPI) - Mapfile kann nicht erstellt werden

  Alt 12. Jan 2009, 00:26
Zitat von LD93:
so kommt "Access is denied" raus...
dann wirst du vermutlich mal etwas den 2 Parameter (lpAttributes: LPSECURITY_ATTRIBUTES) verwenden müssen?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  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 14:39 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