Wie funktioniert die CopyMemory Funktion ?

  • VB6

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Neptun.

    Wie funktioniert die CopyMemory Funktion ?

    Hallo,

    ich arbeite gerade mit der CopyMemory Funktion, die ich aber leider nicht so recht verstehe...

    Visual Basic-Quellcode

    1. For i = 0 To UBound(TestArray)
    2. Call CopyMemory(TestArray(i), VarPtrArray(BitArray) + Len(BitArray(0)) * i, Len(BitArray(0)))
    3. Debug.Print TestArray(i).TestStartPoint, TestArray(i).TestStopPoint, TestArray(i).TestTyp
    4. Next i



    Bei dieser Schleife bekomme ich folgende Werte geliefert :
    1637196 123382072 0
    1637205 123382072 0
    1637214 123382072 0
    1637223 123382072 0
    1637232 123382072 0
    1637241 123382072 0
    1637250 123382072 0
    1637259 123382072 0
    1637268 123382072 0
    1637277 123382072 0
    1637286 123382072 0
    1637295 123382072 0
    1637304 123382072 0
    1637313 123382072 0
    1637322 123382072 0
    1637331 123382072 0
    1637340 123382072 0
    1637349 123382072 0
    1637358 123382072 0
    1637367 123382072 0
    1637376 123382072 0
    1637385 123382072 0
    1637394 123382072 0
    1637403 123382072 0
    1637412 123382072 0
    1637421 123382072 0
    1637430 123382072 0
    1637439 123382072 0
    1637448 123382072 0
    1637457 123382072 0


    Nun Frage ich mich wie diese Werte zustande kommen. Sind das die Adressen, wo das gespeicherte liegt ? Und wenn ja, wie kann ich diese Adressen dann auslesen ?


    Waäre echt nett, wenn mir einer erklären könnte wie das ganze funktioniert :)

    LG
    Hallo Dennis336,
    Nun Frage ich mich wie diese Werte zustande kommen. Sind das die Adressen, wo das gespeicherte liegt ?

    Nein, das sind die Inhalte der Variablen.

    Und wenn ja, wie kann ich diese Adressen dann auslesen ?

    Wozu willst du die Adressen auslesen?
    Siehe dazu:
    support.microsoft.com/kb/199824/de

    CopyMemory kopiert den Inhalt eines Speicherbereichs an eine
    andere Position im Speicher. Es kommt darauf an, wie CopyMemory
    bei dir deklariert ist. Wenn die Variablen ByVal übergeben werden,
    wird der Inhalt der Variablen als Adresse interpretiert, wenn die
    Variablen ByRef übergeben werden wird die absolute Position der
    angegebenen Variable im Speicher als Adresse verwendet. Wenn du,
    wie in deinem Code, beim Aufruf VarPtrArray verwendest, wird die
    Adresse der Variablen im Speicher ausgelesen und diese an CopyMemory
    übergeben.
    Siehe auch:
    activevb.de/tipps/vb6tipps/tipp0403.html
    Gruss,

    Neptun

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Neptun“ ()