• Domingo 22 de Diciembre de 2024, 04:14

Autor Tema:  Al Depurar Se Cae El Programa...  (Leído 1409 veces)

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Al Depurar Se Cae El Programa...
« en: Martes 24 de Abril de 2007, 21:11 »
0
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.
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Al Depurar Se Cae El Programa...
« Respuesta #1 en: Miércoles 25 de Abril de 2007, 15:05 »
0
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.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: Al Depurar Se Cae El Programa...
« Respuesta #2 en: Miércoles 25 de Abril de 2007, 18:15 »
0
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.
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]