Forum: Win32/Win64 API (native code)
Delphi
by p80286,
4. Mär 2010
Also ich seh da jetzt keine Fehler, aber wie wäre es zb mit so etwas
Type
pMyrecord:=^TMyrecord;
....
SfAreaPtr := MapViewOfFile(hSFMemory, FILE_MAP_READ, 0, 0, 0);
pMyrecord:=SfAreaPtr;
CopyMemory(Addr(MyResultRecord),SfAreaPtr,sizeof(MyResultRecord));
Forum: Win32/Win64 API (native code)
Delphi
by p80286,
4. Mär 2010
Hallo Gibb,
im Prinzip liegst Du schon richtig aber
1)Dein MyresultRecord muß ein packed record sein
2) statt Length solltest du Sizeof verwenden, das gibt Dir die Größe in Bytes zurück.
z.B.
a1 : array of integer;
Forum: Win32/Win64 API (native code)
Delphi
by p80286,
4. Mär 2010
Hallo Gibb,
nun mal langsam. Ich würde es so machen:
erst einmal als Buffer ein Array of byte. Den dann Byte für Byte anschauen was wirklich rüber kommt, und dann ein record drüber legen.
const
mbuff :=32
type
tmyrecord : packed record
feld1 : integer;
feld2 : integer;
Forum: Win32/Win64 API (native code)
Delphi
by p80286,
3. Mär 2010
garnicht!
woher weißt Du wie groß das Haus in 10034 Berlin, Bundesallee 12 ist?
einPointer ist nur eine Adresse, zunächst einmal. es gibt auch typisierte Pointer, also Zeiger die auf Strukturen zeigen, und da bemißt sich die Größe nach der zu Grunde liegenden Struktur.
Ich bin mir da nicht sicher aber das "MapViewOfFile(hSFMemory, FILE_MAP_READ, 0, 0, 0);" liefert doch nur garnichts...