Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Vaagish en 12 Marzo 2014, 01:45 am



Título: Problema con Visual Studio 2013
Publicado por: Vaagish en 12 Marzo 2014, 01:45 am
Hola chicos, quizás este no sea el lugar para la duda, pero como programo en c++ en el visual studio lo pongo acá, cualquier cosa movemos el tema y listoo..

El asunto es que tengo una pc con visual studio 2013 y Windows 7,, y no logro generar el ejecutable compatible con Windows XP,, Windows XP me dice "no es una aplicacion win32 valida",, la pc con windows 7 tiene sistema operativo de 32 bits.. O sea,, calculo yo que el ejecutable si es de 32 bits,, (aunque winXP diga que no)

Que puede ser??

Gracias!! Saludos!


Título: Re: Problema con Visual Studio 2013
Publicado por: Eternal Idol en 12 Marzo 2014, 15:12 pm
Los datos son insuficientes como para dar una respuesta certera. ¿Estas generando el ejecutable en modo RELEASE?


Título: Re: Problema con Visual Studio 2013
Publicado por: Vaagish en 12 Marzo 2014, 18:15 pm
Sep,, modo release y modo debug,, da igual.. Tiene importancia que una sea procesador AMD y la otra INTEL? Es la unica diferencia aparte del SO, bue,, y que una es notebook (Windows 7, donde genero y funciona, procesador AMD)  y la otra PC (Windows XP, procesador INTEL)

Saludos! Gracias EI


Título: Re: Problema con Visual Studio 2013
Publicado por: Eternal Idol en 12 Marzo 2014, 20:24 pm
Ejecuta el Dependency Walker (http://dependencywalker.com) en el XP donde no funciona el programa, puede que hayas enlazado estaticamente funciones mas nuevas que XP.


Título: Re: Problema con Visual Studio 2013
Publicado por: Vaagish en 12 Marzo 2014, 21:51 pm
Citar
Ejecuta el Dependency Walker en el XP donde no funciona el programa, puede que hayas enlazado estaticamente funciones mas nuevas que XP.

Efectivamente:

Citar
Error: At least one required implicit or forwarded dependency was not found.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

Librerías que no encuentra:
MSVCP120.DLL
MSVCR120.DLL
DWMAPI.DLL
MOBSYNC.DLL

Con la libreria que calculo tengo mas problemas es con Wininet, las otras son las de siempre,, Windows.h e iostrasm. Igual asi mismo no me funciona ni un holamundo en la consola.

Como puedo solucionar este detalle gran sabio?  :P

Saludos!


Título: Re: Problema con Visual Studio 2013
Publicado por: Eternal Idol en 12 Marzo 2014, 22:08 pm
http://www.microsoft.com/en-us/download/details.aspx?id=40784

Pero mejor genera tu ejecutable con la libreria CRT estatica; con eso solucionas como minimo las dos primeras DLLs.


Título: Re: Problema con Visual Studio 2013
Publicado por: Vaagish en 12 Marzo 2014, 22:25 pm
Citar
The Visual C++ Redistributable Packages install run-time components that are required to run C++ applications that are built by using Visual Studio 2013.

Huu,, que garrón.. siempre lo mismo microsoft.. bue, encontré una opción del VS2013, en:

Propiedades de configuracion -> Conjunto de herramientas de la plataforma -> Visual Studio 2013 - Windows XP(v120_xp)

Cambiando eso, ahora al menos al ejecutar el programa en XP me dice:
Error al iniciar porque falta MSVCP120.dll. La reinstalacion... blabla

Me decias que con:
Citar
Pero mejor genera tu ejecutable con la libreria CRT estatica; con eso solucionas como minimo las dos primeras DLLs.

Como seria eso?



Solucion:

Citar
Si vincula dinámicamente la aplicación a la biblioteca MFC, deberá redistribuir Msvcr100.dll porque todos los archivos DLL de MFC usan la versión compartida de la biblioteca en tiempo de ejecución de C (CRT). También tiene que redistribuir Mfc100u.dll o Mfc100.dll.
Si vincula estáticamente la aplicación a MFC (es decir, si se especifica Utilizar MFC en una biblioteca estática en la pestaña General del cuadro de diálogo Páginas de propiedades), no es necesario redistribuir Mfc100u.dll o Mfc100.dll. Sin embargo, aunque la vinculación estática puede funcionar para probar la implementación interna de las aplicaciones, se recomienda no utilizarla para redistribuir MFC. Para obtener más información sobre las estrategias recomendadas para implementar las bibliotecas de Visual C++, vea Elegir un método de implementación.

Ahora si funciona,, con esas dos modificaciones parece que va..

Gracias!!! Saludos!


Título: Re: Problema con Visual Studio 2013
Publicado por: Eternal Idol en 12 Marzo 2014, 22:39 pm
De nadas; MFC esta obsoleto igual que  XP  ;D


Título: Re: Problema con Visual Studio 2013
Publicado por: Vaagish en 12 Marzo 2014, 22:51 pm
Ups.. creí que estaba solucionado.. pero al compilar otro proyecto mas completo que "holamundo" no funca.. jaja

Ahora me dice: simbolo externo _imp_GetSystemMetrics@4 sin resolver

Que bajón esto.. no puedo pedirle a cada usuario que se instale el Visual C++ Redistributable Packages...  :rolleyes:

Seguiré investigando..

Citar
De nadas; MFC esta obsoleto igual que  XP  ;D
Sep.. pero tiene mas uso que Win8 jaja,, al menos de nuestro lado del mundo..

Sigo escuchando opciones..

Saludos!


Título: Re: Problema con Visual Studio 2013
Publicado por: Eternal Idol en 12 Marzo 2014, 22:57 pm
Te falta la libreria de importacion user32.lib para GetSystemMetrics. O la pones en el IDE (la mejor solucion pero ni tengo el VS 2013) o en el codigo:

Código
  1. #pragma comment(lib, "user32.lib")


Título: Re: Problema con Visual Studio 2013
Publicado por: Vaagish en 12 Marzo 2014, 23:15 pm
Citar
Te falta la libreria de importacion user32.lib para GetSystemMetrics.

Si, era eso.. pero VS me obligo a cambiar mi configuración de "Juego de Caracteres" que uso "Sin establecer" por "Unicode", y ahora todo el resto funciona mal.. el servidor me envia "Refresh" y me llegan un par de caras y símbolos.. un desastre..

No te perdes nada con VS2013 jaja mejor sigo con el 2008

Gracias EI, Saludos!