OVH Cloud OVH Cloud

Allocation mémoire

3 réponses
Avatar
Christophe Jacquelin
Bonjour,

Comment allouer et désallouer une zone de mémoire contenant des octets
en VB.

Merci,
Christophe
PS : Je suis débutant en VB.

3 réponses

Avatar
François Picalausa
Bonjour/soir,

Exemple, pour allouer une zone de 15 octets:
Dim strFixedString As String *15
Ou encore
Dim strMyString As String
strMyString = String$(15,vbNullChar)
Ou encore

Dim strMyString2 As String
strMyString = " "

En VB, il n'y a pas d'allocations/désallocation de mémoire à faire. Tu crées
ta variable, VB fait le reste.
Si tu as vraiment besoin de gérer toi même la mémoire allouée, tu peux le
faire par API... mais généralement, on peut laisser VB se débrouiller.

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Christophe Jacquelin" a écrit dans le
message de news:40193907$0$6968$
Bonjour,

Comment allouer et désallouer une zone de mémoire contenant des octets
en VB.

Merci,
Christophe
PS : Je suis débutant en VB.


Avatar
ng
Ou même encore Space$ :
Dim sVar as String
sVar = Space$(15)

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
"François Picalausa" a écrit dans le message de news:

Bonjour/soir,

Exemple, pour allouer une zone de 15 octets:
Dim strFixedString As String *15
Ou encore
Dim strMyString As String
strMyString = String$(15,vbNullChar)
Ou encore

Dim strMyString2 As String
strMyString = " "

En VB, il n'y a pas d'allocations/désallocation de mémoire à faire. Tu


crées
ta variable, VB fait le reste.
Si tu as vraiment besoin de gérer toi même la mémoire allouée, tu peux le
faire par API... mais généralement, on peut laisser VB se débrouiller.

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Christophe Jacquelin" a écrit dans le
message de news:40193907$0$6968$
> Bonjour,
>
> Comment allouer et désallouer une zone de mémoire contenant des octets
> en VB.
>
> Merci,
> Christophe
> PS : Je suis débutant en VB.




Avatar
Christophe
Bonsoir,

je te conseil la méthode de françois
nez en moins si tu veux vraiment allouer des gros blocs et les gérer (à
manipuler avec précautions car si erreur plantage immédiat et géneral, lis
bien la SDK sur le sujet):
Private Declare Function GlobalAlloc& Lib "kernel32" (ByVal wFlags As Long,
ByVal dwBytes As Long)
Private Declare Function GlobalFree& Lib "kernel32" (ByVal Hmem As Long)
Private Declare Function GlobalLock& Lib "kernel32" (ByVal Hmem As Long)
Private Declare Function GlobalReAlloc& Lib "kernel32" (ByVal Hmem As Long,
ByVal dwBytes As Long, ByVal wFlags As Long)
Private Declare Function GlobalSize& Lib "kernel32" (ByVal Hmem As Long)
Private Declare Function GlobalUnlock& Lib "kernel32" (ByVal Hmem As Long)
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal
lpvDest As Long, ByVal lpvSource As Long, ByVal cbCopy As Long)
Private Declare Sub FillMemory Lib "kernel32" Alias "RtlFillMemory" (ByVal
lpvDest As Long, ByVal lpSize As Long, ByVal lpvalue As Byte)

Christophe Vergon
"François Picalausa" a écrit dans le message de news:

Bonjour/soir,

Exemple, pour allouer une zone de 15 octets:
Dim strFixedString As String *15
Ou encore
Dim strMyString As String
strMyString = String$(15,vbNullChar)
Ou encore

Dim strMyString2 As String
strMyString = " "

En VB, il n'y a pas d'allocations/désallocation de mémoire à faire. Tu


crées
ta variable, VB fait le reste.
Si tu as vraiment besoin de gérer toi même la mémoire allouée, tu peux le
faire par API... mais généralement, on peut laisser VB se débrouiller.

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Christophe Jacquelin" a écrit dans le
message de news:40193907$0$6968$
> Bonjour,
>
> Comment allouer et désallouer une zone de mémoire contenant des octets
> en VB.
>
> Merci,
> Christophe
> PS : Je suis débutant en VB.