• Domingo 17 de Noviembre de 2024, 23:34

Autor Tema:  Punteros De Clases Y Estructuras  (Leído 1566 veces)

x_reaccion

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Punteros De Clases Y Estructuras
« en: Martes 17 de Julio de 2007, 08:13 »
0
Hola

Se me presenta un problema al momento de crear un puntero de una estructura o clase que creo en C#, miren el siguiente ejemplo de una estructura.

Código: Text
  1.  
  2.     public struct worth
  3.     {
  4.         public worth(IntPtr hnD, char[] info, params object[] @params)
  5.         {
  6.             _hnd = hnD;
  7.             _params = @params;
  8.             _info = info;
  9.         }
  10.  
  11.         public IntPtr _hnd;
  12.         public object[] _params;
  13.         public char[] _info;
  14.     }
  15.  
  16.  

Al caso, intentando declarar una variable de la estructura worth como un puntero(worth* worth) me sale el siguiente error "No se puede adquirir la dirección, obtener el tamaño ni declarar un puntero a un tipo administrado".

Terminando mi pregunta es :

     ¿Se puede declarar un puntero de una clase o estructura creada en C#(.NET) o es posible solamente creando una librería de tipos con la clase y:ó estructura en C/++ ?
u.u no quiero cumplir 20 T_T

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: Punteros De Clases Y Estructuras
« Respuesta #1 en: Martes 17 de Julio de 2007, 17:37 »
0
Me tope con el mismo problema, es que C# no permite crear structs de tipos creados por uno mismo, tu ahi lo que haces es crear un struct del mismo tipo, del cual estás definiendo, o sea antes de terminar el struct, ya creas otro igual dentro y eso no es posible. Como tampoco es posible crear un struct con otros struct creados por ti mismo.

Eso lo use para llamar a una DLL de C++ y aun no le encuentro solucion, lo que entiendo yo es que no se puede hacer y te aconsejo que uses clases, pero es mas complejo.

Intenta hacerlo de otra manera.

 :(
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]

x_reaccion

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: Punteros De Clases Y Estructuras
« Respuesta #2 en: Martes 17 de Julio de 2007, 20:35 »
0
Entiendo, gracias por responder Neopro, esto se esta poniendo malo  :lol: , pero bueno supongo que abra otro camino, estube leyendo sobre las palabras clave "ref" y "out" sirven para pasar parametros.

     ¿ref y out pueden sustituir un puntero?
u.u no quiero cumplir 20 T_T

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: Punteros De Clases Y Estructuras
« Respuesta #3 en: Martes 17 de Julio de 2007, 21:14 »
0
No estoy seguro si puedan sustituir a un puntero, pero si funcionan perfectamente. Sobretodo cuando el codigo es no seguro.

El parámetro ref en una variable, obtiene un valor de retorno. Y el parametro out envía un valor. Supongo que estás trabajando con una DLL de C++.

Y si yo mientras no encuentre solucion al reemplazo de los structs, tuve que dejar en espera lo que estoy haciendo. El manejo de estructuras en C# es mucho mas cerrado, que en C++, por ejemplo, en C++ estructuras y clases son lo mismo, en C# se distinguen claramente.
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]