AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Pointer Problem unter XP Prof

Ein Thema von tgt · begonnen am 25. Nov 2003 · letzter Beitrag vom 25. Nov 2003
Antwort Antwort
tgt

Registriert seit: 4. Nov 2003
Ort: Hamburg
6 Beiträge
 
#1

Pointer Problem unter XP Prof

  Alt 25. Nov 2003, 12:50
Hallo,

Ich habe ein Interprocess Communication über File Mapping aufgebaut. Ein Service kommuniziert mit einer Desktop Anwendung über dieses IPC. Funktioniert auch tadel los unter 2000/XP Home/.NET .. selbst unter LongHorn (beta) funzt es. NUR unter Windows XP Professional geht es nicht... und das habe ich bereits mit ca 6 unterschiedlichen Installationen getestet. Auf einem Rechner hab ich sogar alle SP's und Patches draufgespielt, aber keine Veränderung.

Es scheint wohl ein Problem mit dem Pointer zu geben:

Delphi-Quellcode:
 
procedure OpenMMF;
begin
 FConnected := False;
 hMap := OpenFileMapping(FILE_MAP_ALL_ACCESS, False, MMF_NAME);
 if hMap <> 0 then
  begin
   MapView := MapViewOfFile(hMap, FILE_MAP_WRITE, 0, 0, 0);
   FConnected := Assigned(MapView);
  end
 else error('Keine Verbindung zur MMF Quelle.');
end;

procedure ReadMMF(var Buffer: String);
begin
  // An dieser stelle stürzt alles ab !!!
  if Assigned(MapView) then Buffer := String(MapView);
end;
Hat jemand schon ein ähnliches problem gehabt und vielleicht eine Lösung, oder eine Ahnung warum das nur unter XP Prof passiert und nie unter XP Home ?! - Kann ja nicht sein, dass das eine OS Pointer anders behandelt als das andere....

gruss,
Andi
------------------------------------------
http://www.securepoint.de
  Mit Zitat antworten Zitat
Langohr

Registriert seit: 30. Sep 2003
4 Beiträge
 
#2

Re: Pointer Problem unter XP Prof

  Alt 25. Nov 2003, 12:58
Hi !

Ich vermutte mal, dass du deinen Buffer, welchen du übergibst überschreibst
Hast du vorher schon Speicher reserviert ?
  Mit Zitat antworten Zitat
tgt

Registriert seit: 4. Nov 2003
Ort: Hamburg
6 Beiträge
 
#3

Re: Pointer Problem unter XP Prof

  Alt 25. Nov 2003, 13:01
Ja der speicher ist reserviert. Er hat eine feste Größe von 1024 Zeichen. Die Prozesse tauschen auch nicht mehr als 1024 zeichen untereinander aus. Das funktioniert alles tadelos. Bis ich auf den Pointer zugreifen will, der das gemeinsame Handel represäntiert.
------------------------------------------
http://www.securepoint.de
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#4

Re: Pointer Problem unter XP Prof

  Alt 25. Nov 2003, 13:33
Ein String arbeitet ja mit variabler Länge, die Länge wird bei Pointer(Integer(AStr) - 4) gespeichert.
Probier mal folgendes bei schreiben und lesen aus:

  if Assigned(MapView) then Buffer := String(Pointer(Integer(MapView) + 4)); PS: Wenn du dann 1024 Byte für den String benötigst, musst du 1028 Byte reservieren (4 Bytes für die Grösse).
  Mit Zitat antworten Zitat
tgt

Registriert seit: 4. Nov 2003
Ort: Hamburg
6 Beiträge
 
#5

Re: Pointer Problem unter XP Prof

  Alt 25. Nov 2003, 14:17
Ja geht mit der Buffer Erweiterung.. ich hab jetzt mal eine

Delphi-Quellcode:
try
.
.
except
.
.
end;
schleife noch reingebracht... jedesmal bekomm ich einen zugriffsfehler

was mich eben hauptsächlich wundert, ist die tatsache, das es unter 2000, XP Home, .NET (Windows 2003 Server) und LongHorn (beta) tadellos funktioniert.

Nur nicht unter Windows XP Professional.... ist XP Prof so verschieden
zu den anderen OS's ?
------------------------------------------
http://www.securepoint.de
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#6

Re: Pointer Problem unter XP Prof

  Alt 25. Nov 2003, 14:38
Hast du auch die Pointer-Zuweisung so geändert, wie ich es oben angegeben habe?

Ich verstehe ansonsten auch nicht warum das auf den anderen XPs klappt, weil wenn du es wie vorher machst, müsste eigentlich immer eine Zugriffsverletzung rauskommen, weil er ja dann auf Speicher ausserhalb des Maps zugreift.
  Mit Zitat antworten Zitat
tgt

Registriert seit: 4. Nov 2003
Ort: Hamburg
6 Beiträge
 
#7

Re: Pointer Problem unter XP Prof

  Alt 25. Nov 2003, 15:57
yo hab ich gemacht...

... aber keine veränderung... hab jetzt noch einen weitern XP prof rechner aufgesetzt... kein unterschied .. daneben hab ich ein WinXP Home rechner, und 2000 worauf ich entwickle... funzt alles perfekt.... :\
------------------------------------------
http://www.securepoint.de
  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 04:02 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