Memcpy (): differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 9: Riga 9:




Semplice esempio di uso in Gambas:
===Semplice esempio di uso in Gambas con un valore numerico di tipo ''Intero''===
  <FONT color=Gray>' ''wchar_t * memcpy(wchar_t * dest, Const wchar_t * src, size_t count)''</font>
  <FONT color=Gray>' ''void *'''memcpy'''(void *str1, const void *str2, size_t n)''</font>
  '''Private''' <FONT color=#B22222>Extern memcpy</font>(dest As Pointer, src As Pointer, count As Integer) As Pointer In "<FONT color=#B22222>libc:6</font>"
  '''Private''' <FONT color=#B22222>Extern memcpy</font>(dest As Pointer, src As Pointer, count As Integer) In "<FONT color=#B22222>libc:6</font>"
   
   
  '''Public''' Sub Form_Open()
  '''Public''' Sub Main()
   
   
   Dim a, b As Pointer
   Dim a, b As Pointer
   Dim num As Integer
   Dim num As Integer
    
    
    a = Alloc(SizeOf(gb.Integer))
    b = Alloc(SizeOf(gb.Integer))
    
    
    num = 999
  num = 999
  a = VarPtr(num)
  b = Alloc(SizeOf(gb.Integer))
    
    
    a = VarPtr(num)
    
    
      <FONT color=#B22222>memcpy</font>(b, a, SizeOf(gb.Integer))
    <FONT color=#B22222>memcpy</font>(b, a, SizeOf(gb.Integer))
    
    
   Print Int@(b)
   Print Int@(b)
  Free(b)
'''End'''
===Semplice esempio di uso in Gambas con un valore di tipo ''Stringa''===
<FONT color=Gray>' ''void *'''memcpy'''(void *str1, const void *str2, size_t n)''</font>
'''Private''' <FONT color=#B22222>Extern memcpy</font>(dest As Pointer, src As Pointer, count As Integer) In "<FONT color=#B22222>libc:6</font>"
'''Public''' Sub Main()
  Dim src, dest As Pointer
  Dim s As String = "Questa è una prova con la funzione 'memcpy()'."
  src = Alloc(s)
  dest = Alloc(Len(s))
   
    <FONT color=#B22222>memcpy</font>(dest, src, Len(s))
   
  Print "Dopo memcpy, " & Quote("dest") & ":\n"; String@(dest)
  Free(src)
  Free(dest)
   
   
  '''End'''
  '''End'''

Versione delle 18:48, 10 mar 2014

La funzione della libreria di C

void *memcpy(void *str1, const void *str2, size_t n)

copia n caratteri da un'area di memoria str2 ad un'altra area di memoria str1.


Volendola utilizzare in Gambas, bisognerà dichiararla con Extern, nonché bisognerà dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta:

Private Extern memcpy(dest As Pointer, src As Pointer, count As Integer) As Pointer In "libc:6"


Semplice esempio di uso in Gambas con un valore numerico di tipo Intero

' void *memcpy(void *str1, const void *str2, size_t n)
Private Extern memcpy(dest As Pointer, src As Pointer, count As Integer) In "libc:6"

Public Sub Main()

 Dim a, b As Pointer
 Dim num As Integer
 
 
  num = 999

  a = VarPtr(num)
  b = Alloc(SizeOf(gb.Integer))
 
 
   memcpy(b, a, SizeOf(gb.Integer))
  
  Print Int@(b)

  Free(b)

End


Semplice esempio di uso in Gambas con un valore di tipo Stringa

' void *memcpy(void *str1, const void *str2, size_t n)
Private Extern memcpy(dest As Pointer, src As Pointer, count As Integer) In "libc:6"


Public Sub Main()

 Dim src, dest As Pointer
 Dim s As String = "Questa è una prova con la funzione 'memcpy()'."


  src = Alloc(s)
  dest = Alloc(Len(s))
   
   memcpy(dest, src, Len(s))
   
  Print "Dopo memcpy, " & Quote("dest") & ":\n"; String@(dest)

  Free(src)
  Free(dest)

End