RtlMoveMemory: Unterschied zwischen den Versionen

Aus API-Wiki
Wechseln zu: Navigation, Suche
(Hinweise)
Zeile 1: Zeile 1:
 
__NOTOC__
 
__NOTOC__
Die Funktion '''RtlMoveMemory''' kopiert einen Speicherbereich. Ziel- und Quellbereich dürfen sich überlappen.
+
Die Funktion [[RtlMoveMemory]] kopiert einen Speicherbereich. Ziel- und Quellbereich dürfen sich überlappen.
  
 
<PRE>
 
<PRE>
Zeile 10: Zeile 10:
  
  
===Parameter===
+
==Parameter==
 
''Dest''
 
''Dest''
 
:Zeiger auf den Zielspeicher.
 
:Zeiger auf den Zielspeicher.
Zeile 18: Zeile 18:
 
:Anzahl der zu kopierenden Bytes.
 
:Anzahl der zu kopierenden Bytes.
  
===Beispiel===
+
==Beispiel==
  
 
<PRE>
 
<PRE>
Zeile 38: Zeile 38:
  
  
===Hinweise===
+
==Hinweise==
  
 
Zugriffe auf einen nicht allokierten Speicherbereich, z.B. durch falsche Übergabe von Quelle oder Ziel, führen zu einem Zugriffsfehler und Absturz des Programms!<br>
 
Zugriffe auf einen nicht allokierten Speicherbereich, z.B. durch falsche Übergabe von Quelle oder Ziel, führen zu einem Zugriffsfehler und Absturz des Programms!<br>
 
Die hier abgebildete Deklaration verwendet ByRef As Any Übergabe für Quelle und Ziel. Davon abweichend werden bisweilen auch andere Deklarationen verwendet.
 
Die hier abgebildete Deklaration verwendet ByRef As Any Übergabe für Quelle und Ziel. Davon abweichend werden bisweilen auch andere Deklarationen verwendet.
  
===Betriebssystem===
+
==Betriebssystem==
  
 
*Windows 95 / 98 / Me
 
*Windows 95 / 98 / Me
Zeile 50: Zeile 50:
  
  
===Verweise===
 
Keine.
 
 
----
 
  
  
 
[[Kategorie:Kernel]]
 
[[Kategorie:Kernel]]

Version vom 26. März 2007, 14:37 Uhr

Die Funktion RtlMoveMemory kopiert einen Speicherbereich. Ziel- und Quellbereich dürfen sich überlappen.

Declare Sub RtlMoveMemory Lib "kernel32" ( _
                 ByRef Dest As Any, _
                 ByRef Source As Any, _
                 ByVal cbCopy As Long)


Parameter

Dest

Zeiger auf den Zielspeicher.

Source

Zeiger auf den Quellspeicher.

cbCopy

Anzahl der zu kopierenden Bytes.

Beispiel

Dim lWert1 As Long, lWert2 As Long
Dim sString1 As String, sString2 As String

lWert1 = 123456
'kopieren der 4 Bytes von Wert1 nach Wert2
RtlMoveMemory lWert2, lWert1, LenB(lWert1)
MsgBox lWert2

sString1 = "Test"
sString2 = "    "
'kopieren des Strings, um die automatische VB Unicode konvertierung zu umgehen
'muss hier Quelle und Ziel mit ByVal StrPtr() übergeben werden:
RtlMoveMemory ByVal StrPtr(sString2), ByVal StrPtr(sString1), LenB(sString1)
MsgBox sString2


Hinweise

Zugriffe auf einen nicht allokierten Speicherbereich, z.B. durch falsche Übergabe von Quelle oder Ziel, führen zu einem Zugriffsfehler und Absturz des Programms!
Die hier abgebildete Deklaration verwendet ByRef As Any Übergabe für Quelle und Ziel. Davon abweichend werden bisweilen auch andere Deklarationen verwendet.

Betriebssystem

  • Windows 95 / 98 / Me
  • Windows NT 4.0 / 2000 / XP
  • Windows Vista