• Viernes 19 de Abril de 2024, 02:00

Autor Tema:  Manejar Un Puntero  (Leído 1553 veces)

socrates

  • Miembro activo
  • **
  • Mensajes: 63
    • Ver Perfil
Manejar Un Puntero
« en: Jueves 1 de Abril de 2004, 19:27 »
0
segun se en c# no se pueden manejar punteros pero, en realidad si se puedo solo colocando la palabra reservada unsafe, la cosa es que necesito declarar una variable tipo puntero por ejemplo:
 en C++ seria:
char *miPuntero;
en C# seria:
char* miPuntero;

lo que quiero saber es si hay alguna otra forma de declarar la variable char como puntero pues en una funcion de una libreria la utilizo pero no se como declararla como puntero, y cuando ejecuto la funcion debo colocar una variable de parametro pero no me deja poner otra variable que no sea del mismo tipo que tiene de parametro en la funcion de la libreria.
\":)\"

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Manejar Un Puntero
« Respuesta #1 en: Jueves 1 de Abril de 2004, 21:07 »
0
Creo que no te entendi ni 5.

realmente no deberia haber problema con lo que dices, en c, c++ y c# se usan igual los punteros, salvo lo del unsafe.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

socrates

  • Miembro activo
  • **
  • Mensajes: 63
    • Ver Perfil
Re: Manejar Un Puntero
« Respuesta #2 en: Viernes 2 de Abril de 2004, 03:44 »
0
ok va de nuevo..
tengo esta funcion en una classe llamada USB para poder accesar a una DLL en VC++

Código: Text
  1.  
  2. long __stdcall cbUSBDIn (int DeviceNum, int PortNum, int *DataValue);
  3.  
  4.  

y yo la quiero reescribir pero para codigo C#
y como dices uso los punteros casi igual que en VC++, la cosa es que no me funciona:

reescribo la funcion asi:
[CODE]
[DllImport("cbusb.dll",CallingConvention=CallingConvention.StdCall)]
public unsafe static extern long cbUSBDIn(int DeviceNum,int PortNum, int* DataValue);

y luego la llama desde una clase, pero para llamarla tengo que declarar una variable tipo puntero, por ejemplo:

int* datval;
USB.cbUSBDIn(0,0, &datval);
con el & o sin el, con el *  o sin el
la funcion no me regresa el valor que yo espero.
\":)\"