Entwickler-Ecke

Windows API - OpenFileMapping & MapViewOfFile gehen nicht


sk0r - Mi 23.05.07 21:45
Titel: OpenFileMapping & MapViewOfFile gehen nicht
Hi,

ich versuche hinzubekommen dass zwei Programme sich "unterhalten"

dies versuche ich mit FileMapping. Leider will die datei, die
das file map öffnet und lesen soll einfach net funktionieren.

Datei1

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  szFileMapping: string = 'Czybik';
  CONST_SIEBEN: PCHAR = 'sieben';
  hMap: Cardinal;
  hInfo: PCHAR;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  hmap := CreateFileMapping($FFFFFFFF, nil, PAGE_EXECUTE_READWRITE, 0, $1000, PChar(szFileMapping));
  hInfo := MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
  showmessage(syserrormessage(getlasterror));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  hInfo := PCHAR(INPUTBOX('WERT', 'LQL', 'Q'));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  showmessage(inttostr(integer(hInfo^)));
  //hInfo^ := CONST_ACHT;
end;

end.



Datei2

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  szFileMapping: String = 'Czybik';
  CONST_SIEBEN: PCHAR = 'sieben';
  hMap: Cardinal;
  hInfo: Pchar;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  showmessage(hInfo^);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  hMap := OpenFileMapping(FILE_MAP_ALL_ACCESS, false, PChar(szFileMapping));
  hInfo := MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
  showmessage(syserrormessage(getlasterror));
end;

end.


Bitte dringend um Hilfe!!

Moderiert von user profile iconmatze: Code- durch Delphi-Tags ersetzt


Delete - Do 24.05.07 10:05

Falls es von Interesse ist, hier wurde ihm schon geantwortet: http://www.delphipraxis.net/topic110641_opemfilemapping+amp+mapviewoffile+gehen+nicht.html


sk0r - Do 24.05.07 11:43

user profile iconLuckie hat folgendes geschrieben:
Falls es von Interesse ist, hier wurde ihm schon geantwortet: http://www.delphipraxis.net/topic110641_opemfilemapping+amp+mapviewoffile+gehen+nicht.html


Leider hat es mir nicht weitergeholfen, habe zwar meinen Code mit Hilfe des anderen
modifiziert, bin aber zu keinem funktionierenden Ergebnis gekommen.