SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: Neopro en Martes 24 de Abril de 2007, 21:11

Título: Al Depurar Se Cae El Programa...
Publicado por: Neopro en Martes 24 de Abril de 2007, 21:11
Hola Amigos y sobretodo a JuanK que si no fuera por toda su ayuda, no habria logrado en todo lo que voy.

Hice un programa en C# que toma funciones de una DLL, y las debe ejecutar.

Al fin, son 3 DLL que llama pero 2 que son compatibles o sea, las variables que manejan, se comunican.

Pero al compilar y al llamar a una determinada funcion que retorna un tipo long simplemente se cae y se cierra.

Una vez generado (compilado), con el depurador no alcanzo a ver que está pasando ni aunque coloque un punto de interrupción, simplemente se cae antes.

Ahora mi consulta, como puedo saber lo que está sucediendo entre la DLL y el programa en C#???..

Muchas gracias.
Título: Re: Al Depurar Se Cae El Programa...
Publicado por: JuanK en Miércoles 25 de Abril de 2007, 15:05
Es un poco complicado , sobre todo si el depurador no te esta ayudando mucho.

Opciones hay pocas, una aseria tratar de des compilar tu ejecutable y obtener de el el código CIL, el cual puedes ejecutar y debugguear en herramientas como # develop así tal vez  puedas encontrar mejor el problema.

Otra es con los fuentes de la dll, y depurarla utilizando vc++, sino tienes los fuentes puedes intentar depurarla obteniendo el asm con des compilador o incluso obteniendo los fuentes con un des compilador.
Título: Re: Al Depurar Se Cae El Programa...
Publicado por: Neopro en Miércoles 25 de Abril de 2007, 18:15
Gracias, me porporcionaron un codigo parecido que utiliza las funciones que yo utilizo pero en Visual C++, ahora ejecuto ambos programas y puedo revisar los valores que estan en cada una de las funciones.

Uno de los problemas de los que me he percatado, es que en C++ un valor unsigned char pasando asignado con "malloc" (con lo cual se puede decir que es parecido a char[] en C#), muestra perfectamente los valores del archivo RAW con los que trabajo, mientras que en C# no he podido dar con lo mismo, o siemplemente al pasar los valores de Byte[] a Char[], creo que mi inquietud pasa por poder enviarle solo un char con todos los valores, lo que pasa a la funcion es el valor en byte y su referencia en ASCII, y solo quiero la referencia en ASCII.

En C++

Código: Text
  1. var  = (unsigned char *)malloc(200000);
  2.  

En C#


Código: Text
  1. char*[] var = new char*[200000];
  2.  

o

Código: Text
  1. char* var = stackalloc char[200000];
  2.  

Esas son mis dudas, porque la segunda opcion no me permite asignarle el RAW que estoy capturando, que por funcion debe estar en byte[]

Y ese valor es fundamental el evaluar las otras expresiones.