Autor Beitrag
EPS
Hält's aus hier
Beiträge: 9


D6
BeitragVerfasst: Mi 28.06.06 16:06 
Hi...wohl ne Anfängerfrage, aber ich bekomme es einfach nicht gebacken.

Ich hab eine Funktion welche den Pointer auf einen Speicherbereich als Parameter bekommt:

ausblenden Quelltext
1:
function MyFunction( bank:Pointer )					


Dieser Speicherbereich ist 3072 Bytes groß und nun möchte ich in diesen Speicherbereich Werte reinschreiben.

Leider haben mir alle möglichen Tutorials und Forensuchen nicht weiterhelfen können und ich bin mir nicht einmal sicher ob der Parameter so überhaupt richtig deklariert ist. Das einzige was ich sicher weis ist das es ein Pointer ist der auf einen Speicherbereich zeigt.

Zur Hintregrundinformation: Das ganze dient dazu eine DLL für BlitzBasic zu schreiben. In BlitzBasic kann man sich Speicherbänke reservieren "Bank = CreateBank(3072)". Der Pointer auf diese Bank wird dann an die DLL übermittelt.

Ich hoffe jemand kann mir hier weiterhelfen, ich klemme nämlich ganz schön fest. DANKE VIELMALS
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Mi 28.06.06 16:12 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
//entweder:

function MyFunction( bank:Pointer );
begin
  PByte(DWord(bank)+0)^ := $12//wert
end;

// wobei '+0' = die stelle (immer in Byte) und PByte der Typ ist
// PInteger, PDWord, PChar usw. 
// Structs ebenfalls


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
//oder:

function MyFunction( bank:Pointer );
type
  ArrayOfByte = array[0..0of Byte;
var
  MyArray: ^ArrayOfByte;
begin
  MyArray := bank;

  MyArray[0]^ := $12
end;



ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
//oder:

type
  TArrayOfByte = array[0..0of Byte;
  PArrayOfByte = ^TArrayOfByte ;

function MyFunction( bank: PArrayOfByte );
begin
  bank[0]^ := $12
end;

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit


Zuletzt bearbeitet von uall@ogc am Mi 28.06.06 16:20, insgesamt 1-mal bearbeitet
EPS Threadstarter
Hält's aus hier
Beiträge: 9


D6
BeitragVerfasst: Mi 28.06.06 16:19 
Du bist ein Schatz...DANKE