Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


Aplicación MFC no funciona en Windows Vista

Aqui programadores en la plataforma Win32 con Visual C++ de Microsoft...

Moderador: latindeveloper

Aplicación MFC no funciona en Windows Vista

Notapor jmcordoba el Lun Mar 26, 2007 8:39 am

Buenas tardes!

Tengo un problema del que llevo una semana dándome contra un muro sin sentido...tengo una aplicación compilada en modo release y debug en Visual C++ 6.0 sobre windows 98 y XP, pero si la arranco en Vista me da diferentes problemas según el modo en el que he compilado el proyecto.

Si lo he compilado en modo debug, tanto si lo he hecho sobre XP o Vista, al ejecutarlo me dice que la librería MFC42D.dll no es correcta...cojo la librería del cd Visual C++ 6.0 la copio en Windows/System32 y cuando vuelvo a ejecutar me dice que "no se encuentra el ordinal 5078 en la biblioteca de vínculos dinámicos MFC42D.dll". Leiendo por ahi me encontrado que puede que la librería está corrupta...os sigo contando y luego expongo lo que pienso.

Si lo compilo en modo release, tanto desde XP o Vista, al ejecutar me da un error directamente del ejecutable...

Los ejecutables los he ejecutado con compatibilidad para Windows 98, XP y 2000 con permisos de administrador y sin ellos, compilados desde diferentes sistemas operativos, incluido desde el que lo ejecuto...

Como curiosidad decir que si instalo SOLAMENTE las shared libraries del cd de Visual C++ 6.0 funiciona tanto los ejecutables compilados en modo release como en modo debug, lo que me ha hecho mirar cada archivo que instala estas shared libraries en el sistema para copiar los archivos y posteriormente cuando no estuvieran instaladas las shared libraries desde el cd, copiarlas para ver si funciona, pero tampoco...lo que me hace pensar que esta instalación de shared libraries desde el cd de Visual C++ 6.0 hace algo más que copiar archivos en mi sistema, como pudiera ser hacer algun tipo de registro en el regedit o semejante...

Chicos recurro a ustedes porque una vez me fueron de mucha ayuda...espero que esta vez seais capaces de ayudarme jejeje un saludo a tod@s!!
jmcordoba
Novato
Novato
 
Mensajes: 11
Registrado: Mié Nov 15, 2006 9:48 am

Re: Aplicación MFC no funciona en Windows Vista

Notapor latindeveloper el Mar Mar 27, 2007 4:28 pm

Debes compilar tu ejecutable en modo Release, luego llevar el archivo mfc42.dll a la misma carpeta de tu ejecutable (para evitar conflictos). Finalmente haces click derecho sobre el ejecutable (en Windows Vista ) y en la seccion de compatibilidad eliges Windows XP.
Imagen
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:29 pm
Ubicación: Peru

Notapor jmcordoba el Mié Mar 28, 2007 1:23 am

Gracias por tu respuesta!

Tengo una duda: he descubierto que en las opciones del compilador puedo controlar si quiero que utilice shared o static libraries pero he creado el ejecutable tanto en modo release y debug con las dos opciones de librerías y sigue sin ejecutarse.

En referencia a lo que tu me dices: como puedo "indicarle" al ejecutable o al proyecto en si que la librería mfc42.dll la tome del path dnd tengo el ejecutable y no de Windows/System32 donde suele estar alojada?

Gracias de nuevo por vuestra ayuda, un saludo!
jmcordoba
Novato
Novato
 
Mensajes: 11
Registrado: Mié Nov 15, 2006 9:48 am

Notapor latindeveloper el Mié Mar 28, 2007 8:31 pm

jmcordoba escribió:Tengo una duda: he descubierto que en las opciones del compilador puedo controlar si quiero que utilice shared o static libraries pero he creado el ejecutable tanto en modo release y debug con las dos opciones de librerías y sigue sin ejecutarse.


En este caso esa opcion no tiene que ver con la ejecusion en Vista.

jmcordoba escribió:En referencia a lo que tu me dices: como puedo "indicarle" al ejecutable o al proyecto en si que la librería mfc42.dll la tome del path dnd tengo el ejecutable y no de Windows/System32 donde suele estar alojada?


Simplemente copias el archivo mfc42.dll en la misma carpeta del ejecutable, la carpeta donde se ejecuta el programa es por defecto la primera ruta donde buscará los archivos de los que depende.

Ubica el ejecutable desde el explorador y hazle click derecho y elige propiedades, En la pestaña de compatibilidad encontrarás modos de ejecusion, y eliges el que corresponde a Windows XP.
Imagen
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:29 pm
Ubicación: Peru

Notapor jmcordoba el Mié Abr 04, 2007 1:56 am

Buenas nuevo...

parece que la idea de poner las librerias en la misma ruta que el ejecutable no ha dado resultado...aki os dejo el error que me devuelve el sistema operativo para ver si teneis alguna idea mas:

Firma con problemas:
Nombre del evento de problema: APPCRASH
Nombre de la aplicación: NewCut.exe
Versión de la aplicación: 1.0.0.1
Marca de tiempo de la aplicación: 4608efb9
Nombre del módulo con errores: NewCut.exe
Versión del módulo con errores: 1.0.0.1
Marca de tiempo del módulo con errores: 4608efb9
Código de excepción: c0000005
Desplazamiento de excepción: 0000592d
Versión del sistema operativo: 6.0.6000.2.0.0.768.2
Id. de configuración regional: 3082
Información adicional 1: c345
Información adicional 2: a771d113d9cd123ad2388c8629b009de
Información adicional 3: ae67
Información adicional 4: 72291de5b7d8a4ae4a7db8c6be249e42

Es muy extraño ya que tengo otra aplicación que funciona normal compilada en modo debug y release...

alguna idea??

un saludo!
jmcordoba
Novato
Novato
 
Mensajes: 11
Registrado: Mié Nov 15, 2006 9:48 am


Volver a Visual C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado