elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Problema copiando Estructuras a Bytes xP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema copiando Estructuras a Bytes xP  (Leído 1,777 veces)
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Problema copiando Estructuras a Bytes xP
« en: 10 Noviembre 2011, 07:35 am »

Hola mundo ;D
bueno e me cruzado con un problemon que tengo horas tratando de saber que pasa :P
miren el codigo alguien sabe que pasaaaa!?

Código
  1. Private declare sub RtlMoveMemory lib "Kernel32.dll" (byval dest as long , Byval Src as long, Byval ln as long)
  2.  
  3. private type MY
  4. Str1 as string
  5. Str2 as string
  6. end type
  7.  
  8. sub main()
  9. dim NEW(50) as byte
  10. dim M as MY
  11.  
  12. M.Str1 = "ABCD"
  13. M.Str2 = "EFGH"
  14.  
  15. rtlmovememory varptr(new(0)), varptr(M) , lenb(M)
  16.  
  17. end sub
  18.  
  19.  

los valores del array son:
116,153,61,5

y lo que realmente me esperaba era:
65,66,67,68 :P


luego hice esto:

Código
  1. dim A() as byte
  2.  
  3. A = M.Str1 '// la misma estructura

y tambien esto, y me resulto mas extraño O.o

Código
  1. Private Sub Form_Load()
  2. Dim M As MY
  3.  
  4. M.A = 50000: M.B = 4000
  5. M.C = "HELLO"
  6.  
  7.  
  8. Debug.Print Len(M.A) 4
  9. Debug.Print Len(M.B) 2
  10. Debug.Print Len(M.C) 5
  11. Debug.Print "------"  11
  12.  
  13. Debug.Print LenB(M.A) 4
  14. Debug.Print LenB(M.B) 2
  15. Debug.Print LenB(M.C) 10
  16. Debug.Print "------" ' 16
  17.  
  18. Debug.Print Len(M) 10
  19. Debug.Print LenB(M) 12!!!
  20.  
  21. End Sub
  22.  
  23.  


alguien sabe que pasa ? mas que todo lo que quiero es aprender ;D y saber que pasa :P aunque me imagino
que es VB  :-\ que tristesa  :-\


« Última modificación: 10 Noviembre 2011, 07:38 am por RHL » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Problema copiando Estructuras a Bytes xP
« Respuesta #1 en: 10 Noviembre 2011, 08:11 am »

las estructuras de C/C++ es la misma teoria que la de VB6... si las variables NO TIENEN LONGITUD por ejemplo una string... se convertira en un apuntador... me da un poco de pereza volver a explicarlo... busca un tema similar (lo explique a detalle) donde explico que onda y el por que de cada cosa...

Dulces Lunas!¡.


En línea

The Dark Shadow is my passion.
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Problema copiando Estructuras a Bytes xP
« Respuesta #2 en: 10 Noviembre 2011, 08:39 am »

Es cierto!! :xD como se me habria olvidado x3
en las estrucuturas las string son punteros xP

Código:
Private declare sub RtlMoveMemory lib "Kernel32.dll" (byval dest as long , Byval Src as long, Byval ln as long)
 
private type MY
Str1 as string
Str2 as string
end type
 
sub main()
dim NEW(50) as byte
dim M as MY
 
M.Str1 = "ABCD"
M.Str2 = "EFGH"
 
rtlmovememory varptr(new(0)), varptr(M) , lenb(M)
 
end sub
 

entonces en este codigo lo que realmente estoy copiando a "New" son los punteros de las string no? x)
hice este :P

Código:
Private declare sub RtlMoveMemory lib "Kernel32.dll" (byval dest as long , Byval Src as long, Byval ln as long)
 
private type MY
A as integer
Str1 as string
C as long
end type
 
sub main()
dim NEW(50) as byte
dim M as MY
 
M.A = 4000
M.Str1 = "ABCD"
M.C = 45000
 
rtlmovememory varptr(new(0)), varptr(M) , lenb(M)
 
end sub

lo raro es el array queda asi con esos valores :P
160
15
0
0
220
64
52
5
200
175

esta raro :P no puede ser que todos sean punteros :| o si



Mil gracias BlackZeroX ;D
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Problema copiando Estructuras a Bytes xP
« Respuesta #3 en: 10 Noviembre 2011, 09:52 am »

Vb6 trabaja de un modo Horroroso... pero ten encuenta esto...

Array (De cual quier tipo) y String sin longitud inicial seran considerados como punteros internos (en la memoria claro)...

Dulces Lunas!¡.
« Última modificación: 10 Noviembre 2011, 10:03 am por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Problema copiando Estructuras a Bytes xP
« Respuesta #4 en: 10 Noviembre 2011, 19:12 pm »

Guardado ;)
gracias Zero ;D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda. Problema con arreglo de estructuras.
Programación C/C++
Gorka82 1 3,021 Último mensaje 11 Julio 2010, 06:26 am
por Littlehorse
Problema con estructuras
Programación C/C++
clodan 3 2,905 Último mensaje 14 Septiembre 2010, 18:41 pm
por Garfield07
Problema con accceso a estructuras.
Programación C/C++
chemaspain 6 3,222 Último mensaje 7 Mayo 2011, 18:57 pm
por chemaspain
Problema con estructuras[Ayuda]
Programación C/C++
Blaster 4 2,197 Último mensaje 8 Noviembre 2012, 16:30 pm
por rir3760
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines