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
var = (unsigned char *)malloc(200000);
En C#
Código: Text
char*[] var = new char*[200000];
o
Código: Text
char* var = stackalloc char[200000];
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.