Hola, mi problema es que estoy trabajando en una librería la cual estuve planificando el diseño tiempo. La libreria es una DLL que en principio esta pensada para ser linkeada de forma estatica (el diseño es mas facil y se adecua al sistema de clases que tengo). Bueno pues mi proyecto esta organizado de la siguiente manera, tengo tres proyectos los cuales es la misma libreria implementada de varias formas. El primero es un programa con su main y dentro del proyecto esta la libreria, de esta forma la testeo facilmente. Acto seguido copio el codigo en el proyecto que crea la DLL y la compilo teniendo como resultado una DLL ya testada. Por ultimo en otro proycto linkeado a la DLL hago exactamente las mismas pruebas que en el primer proyecto y asi me aseguro que la DLL funciona como debe.
Para mi este sistema es comodo ya que no tengo que andar con dos proyectos, el que compile la DLL y otro aparte para probarlo, sino que creo el codigo en uno aparte lo testeo y una vez comprobado copio y pego en el proyecto final y los resultados de los test deben ser iguales.
Aqui mi problema, resulta que en el proyecto inicial los test van de maravilla, no hay errores en la clase que estoy testando. En el proyecto que incluya la DLL no se esperan anomalias, ya que el codigo es el mismo, se comprueba que se haya contruido bien la DLL ya que el funcionamiento de las clases ya se a comprobado, pero bueno un copia y pega no esta de mas.
Ahora... llevo con este problema alrededor de un mes investigando y no hayo respuesta. Comprobando los constructores de la unica clase que llevo resulta que si se instancia de forma estatica, es decir, como variable, no da problemas (
TODO ESTO EN EL PROYECTO FINAL, EN EL PRIMERO TODO FUNCIONA BIEN), pero cuando hago uso del operador
new para llamar a algun constructor de una clase pasa algo rarisimo, hay veces que el programa termina correctamente, pero no crea el objeto (no se ve por pantalla) y otras que la aplicacion crashea, el tipico: Esta aplicacion a dejado de funcionar, de windows. He probado a poner el test en un bloque try, pero no me recoje ninguna excepcion, y lo mas extraño es que no pasa siempre, no siempre crashea, lo que me hace pensar que el codigo esta bien, es mas cuando no se instancia con
new todo funciona bien.
¿Como puedo encontrar el error?¿como puedo saber por que Windows cierra la aplicacion asi, es decir, saber cual es la causa?Probe a crear una libreria estatica con el mismo resultado.....
PD: no pongo el codigo pues se trata de un proyecto grande con muchisimos archivos y la clase de la que hablo contiene mucho codigo