unsigned char* vs byte[]
Publicado por Josep (3 intervenciones) el 04/12/2006 18:00:49
Buenas,
estoy programando una aplicacion con C# en la que uso una libreria que me han pasado que esta programada en C.
El problema es que las estructuras de datos de la libreria de C son estos:
typedef struct{
float pin;
float sustr;
float adh;
char* codiError;
unsigned char * ImageM;
int alt;
int an;
}Datos;
y los que uso en C# son estos:
public struct Datos
{
public float pin;
public float sustr;
public float adh;
public string codiError;
public byte[] ImageM;
public int alt;
public int an;
}
Lo que nos pasa es que cuando llamo a la funcion implementada en C que devuelve la estructura anterior nos da error y claro no puedo debugar la dll al estar y compilada!!
Pero si comentamos la linea de "public byte[] ImageM;" y "public string codiError;" si que funciona.
Lo que creemos que puede ser, es el uso de char* en lugar de string y unsigned char en lugar de byte[]. Pero no sabemos como solucionar el error y esas dos variables las necesitamos para continuar.
Alguien nos puede ayudar a solucionar este error de cambio de estructuras de C a C#??
Gracias
estoy programando una aplicacion con C# en la que uso una libreria que me han pasado que esta programada en C.
El problema es que las estructuras de datos de la libreria de C son estos:
typedef struct{
float pin;
float sustr;
float adh;
char* codiError;
unsigned char * ImageM;
int alt;
int an;
}Datos;
y los que uso en C# son estos:
public struct Datos
{
public float pin;
public float sustr;
public float adh;
public string codiError;
public byte[] ImageM;
public int alt;
public int an;
}
Lo que nos pasa es que cuando llamo a la funcion implementada en C que devuelve la estructura anterior nos da error y claro no puedo debugar la dll al estar y compilada!!
Pero si comentamos la linea de "public byte[] ImageM;" y "public string codiError;" si que funciona.
Lo que creemos que puede ser, es el uso de char* en lugar de string y unsigned char en lugar de byte[]. Pero no sabemos como solucionar el error y esas dos variables las necesitamos para continuar.
Alguien nos puede ayudar a solucionar este error de cambio de estructuras de C a C#??
Gracias
Valora esta pregunta


0