Announcement

Collapse
No announcement yet.

Speicherbereich in einen Stream schreiben....

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Speicherbereich in einen Stream schreiben....

    Hallo,<br>
    Ich möchte einer Prozedur einen Zeiger auf einen Speicherbereich übergeben (es ist zur Laufzeit weder bekannt, was in diesem Speicherbereich steht, noch wie groß der Speicherbereich ist), und diese Prozedur soll dann den kompletten Inhalt dieses Speicherbereichs in einen Stream (oder auch String, das ist egal) schreiben.<br>
    Ich habe überhaupt keine Ahnung, wie ich das machen soll. Geht das überhaupt mit Delphi oder muß ich das in Assembler schreiben?<br>
    Danke im voraus<br>
    Patrick

  • #2
    Hallo,

    &gt;..es ist zur Laufzeit weder bekannt, was in diesem Speicherbereich steht, noch wie groß der Speicherbereich ist..

    gibt es wenigstens eine definierte Signatur, die das Ende der Daten kennzeichnet? Befindet sich dieser Speicherbereich im eigenen Prozess (Adressraum)

    Comment


    • #3
      Andreas Fragen zielen darauf ab mit irgendeinem Trick die Größe des Speicherbereiches in Erfahrung zu bringen. D.h. Du benötigst immer die Addresse + die Größe des Speicherbereiches, egal ob Pascal oder Assembler.<br>
      Es gäbe nun mehrere Wege. Entweder wird im Speicher tatsächlich eine Signature abgelegt die als "Ende"-Marker dient. Z.B. PChars haben dafür den NULL-Terminator.<br>
      Oder aber du speicherst die komplette Speicher-Page in die dein Zeiger zeigt. Das OS verwaltet jeden Speicher über einzelne Pages. Zu einem gegebenen Zeiger kann man per API Informationen über diese Pages erhalten. Schau in der Hilfe nach VirtualQuery(), VirtualQueryEx() und MEMORY_BASIC_INFORMATION.<br>

      Gruß Hage

      Comment

      Working...
      X