Forum: PC-Programmierung Zeigerprobleme bei DLL Programmierung


von Marcel (Gast)


Lesenswert?

Hey!

Bin das allererste mal dabei in Delphi einen Treiber zu programmieren.
Die Exports wurden dabei von der Softwareherstellerfirma vorgegeben.

Und bei dieser Funktion beginnen meine Probleme:

function Registrierung(b: PChar): word stdcall;

Hier möchte ich acht Datenbytes an die Stelle im Ram schreiben(Oder 
besser gesagt AB der Stelle), die mir durch das Programm in "b" 
übergeben wurden.

Leider habe ich es bisher immer nur geschafft, die Adresse im Zeiger mit 
meinem Wert zu überschreiben. Aber das ist ja nicht gerade das was ich 
wollte.

Den Rückgabewert selber konnte ich verarbeiten. Habe nur das Problem mit 
dem Zeiger

Danke Schonmal für eure Hilfe

von Severino R. (severino)


Lesenswert?

Der Zeiger ist ja eben die Adresse, d.h. er enthält die Adresse einer 
Variablen (in Deinem Fall Char). Um auf die Variable selber zuzugreifen, 
musst Du den Zeiger dereferenzieren.

In Pascal geht das so (wenn ich mich richtig erinnere):

Var
  DeinWert : Char;

..
..
b^ := DeinWert;

Um auf die weiteren Speicherstellen zuzugreifen, musst du den Zeiger 
inkrementieren.

von Marcel (Gast)


Lesenswert?

Danke!

Das @ vor einer Variable um die Adresse statt den Wert zu bekommen hatte 
ich schon gekannt.
Aber den ^ kannte ich noch nicht.

War genau das was ich gebraucht habe

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.