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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [AYUDA] C# punteros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [AYUDA] C# punteros  (Leído 1,858 veces)
Miseryk

Desconectado Desconectado

Mensajes: 225


SI.NU.SA U.GU.DE (2NE1 - D-Unit)


Ver Perfil
[AYUDA] C# punteros
« en: 26 Febrero 2014, 15:23 pm »

Hola a todos, estaba tratando de pasar un código de c++ a c#, busqué en internet la posible solución, aún así no pude resolverlo, es el siguiente:

Edit:
Por cierto, estoy utilizando ésto:
Código
  1.    using DWORD = UInt32;
  2.    using HRESULT = Int32;
  3.    using WORD = UInt16;
  4.    using ULONG = UInt32;
  5.    using HSERVICE = UInt16;
  6.    using LPVOID = IntPtr;
  7.    using LPBYTE = IntPtr;
  8.    using REQUESTID = UInt32;
  9.    using USHORT = UInt16;
  10.    using BOOL = UInt32;
  11.    using LPSTR = IntPtr;
  12.    using BYTE = Byte;
  13.    using CHAR = Byte;
  14.    using DOUBLE = Double;
  15.    using FLOAT = Single;
  16.    using LONG = UInt32;
  17.    using LONGLONG = UInt64;
  18.    using SHORT = Int16;
  19.    using UINT = UInt32;
  20.    using ULONGLONG = UInt64;
  21.  

Código
  1. [StructLayout(LayoutKind.Explicit, Size = 268, CharSet = CharSet.Ansi)]
  2.    public unsafe struct WFSIPMIMAGEREQUEST2
  3.    {
  4.        [FieldOffset(0)]public WORD wImageSource;
  5.        [FieldOffset(2)]public WORD wImageType;
  6.        [FieldOffset(4)]public WORD wImageColorFormat;
  7.        [FieldOffset(6)]public WORD wImageScanColor;
  8.        [FieldOffset(8)]public LPVOID lpszImagePath;
  9.        [FieldOffset(12)]public fixed char Value[256];
  10.    }
  11.  
  12. [StructLayout(LayoutKind.Explicit, Size = 276, CharSet = CharSet.Ansi)]
  13.    public unsafe struct WFSIPMREADIMAGEIN2
  14.    {
  15.        [FieldOffset(0)]public USHORT usMediaID;
  16.        [FieldOffset(2)]public WORD wCodelineFormat;
  17.        [FieldOffset(4)]public WFSIPMIMAGEREQUEST2** lppImage;
  18.    }
  19.  

A WFSIPMREADIMAGEIN2 le puse 276 porque está en offset 4 + 268 de la otra estructura = 272 + 4 de otro index pero a null como terminador de los índices.

Por el cual el index 0 tendría toda la estructura y el index 1 sería igual a null.

Código
  1. WFSIPMREADIMAGEIN2 lpReadImageIn = new WFSIPMREADIMAGEIN2();
  2.  

pero cuando hago:

Código
  1. lpReadImageIn.lppImage[0]->wImageSource = 1;
  2.  

Me muestra como mensaje de error: "Object reference not set to an instance of an object."

Cualquier aporte sería de gran ayuda, gracias.


« Última modificación: 26 Febrero 2014, 15:26 pm por Miseryk » En línea

Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It’s never too late to change our luck
So, don’t let them steal your light
Don’t let them break your stride
There is light on the other side
And you’ll see all the raindrops falling behind
Make it out tonight
it’s a revolution

CL!!!
kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: [AYUDA] C# punteros
« Respuesta #1 en: 28 Febrero 2014, 21:06 pm »

Buenas Miseryk,

revisando por encima tu código me he dado cuenta de un par de cosas:

Código
  1. WFSIPMREADIMAGEIN2 lpReadImageIn = new WFSIPMREADIMAGEIN2();

Ahí creas correctamente la instancia de la estructura convertida a C#.

Código
  1. lpReadImageIn.lppImage[0]->wImageSource = 1;

Lo que sucede es que intentas asignar el valor '1' al campo lppImage, campo el cual no ha sido previamente instanciado por lo que no apunta a una referencia válida de instancia u objeto. Resumiendo, que el campo lppImage no apunta a ningún lado, está vacio (puntero a null).

Lo podrías solucionar instanciado dicho campo de la estructura:

Código
  1. lpReadImageIn.lppImage[0] = new WFSIPMIMAGEREQUEST2();

La próxima vez ten más cuidado  ;)

Saludos!


En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda]con punteros en asm
ASM
ny0x 4 6,752 Último mensaje 12 Mayo 2009, 21:45 pm
por ny0x
Duda Punteros Dobles/Array de punteros
Programación C/C++
MisterJava 2 4,904 Último mensaje 30 Diciembre 2012, 20:19 pm
por MisterJava
ayuda con punteros de C
Programación C/C++
LeoJ24 1 1,711 Último mensaje 11 Enero 2013, 18:13 pm
por durasno
Ayuda con punteros (en C++) (Actualizacion constante con nuevas preguntas)
Programación C/C++
DarkSorcerer 5 2,328 Último mensaje 18 Septiembre 2013, 07:12 am
por eferion
Ayuda con punteros
Programación C/C++
Xenomorfo77 2 2,910 Último mensaje 2 Octubre 2013, 08:16 am
por Xenomorfo77
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines