Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problema destrucción de objeto en Visual Basic 6

Estas en el tema de Problema destrucción de objeto en Visual Basic 6 en el foro de Visual Basic clásico en Foros del Web. Estimados compañeros: Tengo un objeto, el cual creo con un CreateObject. Cuando lo estoy depurando, veo que el CreateObject llama al constructor del objeto, pero ...
  #1 (permalink)  
Antiguo 15/09/2008, 04:51
 
Fecha de Ingreso: mayo-2004
Mensajes: 50
Antigüedad: 20 años
Puntos: 1
Problema destrucción de objeto en Visual Basic 6

Estimados compañeros:

Tengo un objeto, el cual creo con un CreateObject. Cuando lo estoy depurando, veo que el CreateObject llama al constructor del objeto, pero inmediátamente después de su creación, se llama su destructor, dejándome el objeto sin crear.
Claro, posteriormente tengo el problema de que me aparece el mensaje "No coinciden los tipos" puesto que el objeto se ha creado y autodestruído secuencialmente. ¿A álguien le ha pasado alguna vez? ¿Hay posibilidades de evitar la destrucción?
No os pongo código en principio para no liar demasiado, pero si a álguien le hace falta, lo tengo justo aquí y lo posteo en un momento.
Cualquier pista, cualquier ayuda les estaría enormemente agradecido.
Muchas gracias.

Eduardo.
  #2 (permalink)  
Antiguo 15/09/2008, 12:24
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Problema destrucción de objeto en Visual Basic 6

No, a mí nunca me ha pasado, no es un comportamiento normal, ¿cuál es el objeto que estás creando?. Sólo necesitas poner la parte del código que corresponde al caso.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 16/09/2008, 05:35
 
Fecha de Ingreso: mayo-2004
Mensajes: 50
Antigüedad: 20 años
Puntos: 1
Respuesta: Problema destrucción de objeto en Visual Basic 6

Gracias por contestar David. En realidad no hay ningún lugar de código en concreto. Hace cosas muy extrañas. Mira, si quito el tipo en la declaración del objeto, entonces no lo destruye. Por ejemplo:

Dim oProfesional AS PProfesional.clsProfesional

Si a esa declaración del objeto le quito todo lo que viene después del AS, no me destruye el objeto, es decir, poniéndolo así:

Dim oProfesional

Pero claro, eso era ayer por la tarde. Ésta mañana, a pesar de tenerlo así, volvía a autodestruirse. Entonces empecé a probar otras cosas, como por ejemplo agregar ciertos módulos a mi proyecto. Si agregaba ciertos módulos se autodestruía, pero si quitaba otros ciertos módulos, entonces no se destruía.
Como ves, es una anomalía global muy inestable que no entiendo el porqué. Ahora mismo me funciona, a fuerza de prueba y error, pero es muy susceptible de errores.
Si a álguien se le ocurre algo sobre porqué puede estar pasando algo de ésto, le estaría muy agradecido.
Muchas gracias a tod@s
  #4 (permalink)  
Antiguo 16/09/2008, 06:11
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Problema destrucción de objeto en Visual Basic 6

Es realmente extraño, e infelizmente no se me ocurre por qué pueda ser, ¿has probado agregar tus módulos y ventanas a un Nuevo Proyecto?.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 23/09/2008, 01:18
 
Fecha de Ingreso: mayo-2004
Mensajes: 50
Antigüedad: 20 años
Puntos: 1
Respuesta: Problema destrucción de objeto en Visual Basic 6

Hola David!!!. Sí he probado ha hacer un proyecto nuevo. Ten en cuenta que lo que yo estoy haciendo son librerías DLL. Me he dado cuenta de que, por ejemplo, si en mi proyecto tengo agregado el módulo de profesionales, entonces se autodestruye el objeto profesionales. Si tengo agregado el proyecto personas, se autodestruye el objeto personas. Sólo ocurre con esos dos. La única relación que éstos dos objetos tienen entre sí es que, un profesional, también es una persona, lo cual significa que dentro de mi objeto profesional tengo un atributo que es un objeto persona. No sé si eso podría ser el problema. Visual Basic 6 no permite la programación orientada a objetos y lo mismo es ese el problema, porque mi intención era una especie de herencia entre éstos dos objetos, y en VB6 sólo se pueden heredar las interfaces...
De todos modos, muchas gracias de nuevo por responder David.
Abrazos.

Eduardo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:53.