Instalacion AhsJoin - Faltan Librerias [Resuelto]

Problemas relacionados con el nuevo programa de conexión para Pilotos (FSX, FSX-SE, Prepar3D & X-Plane)
Cerrado
Alvaro Escorcia
Comandante Senior
Comandante Senior
Mensajes: 512
Registrado: Noviembre 20, 2013, 19:21
Answers: 1

Instalacion AhsJoin - Faltan Librerias [Resuelto]

Mensaje por Alvaro Escorcia »

Recibido a traves de la lista de correo general

<Quote>
Buenas tardes,
He tenido que formatear mi PC y ya tengo casi todo reinstalado, excepto e AHS_JOIN ya que al ejecutar el fichero AHS-join.exe me saca los siguientes avisos:

No se puede ejecutar porque no se encuentran los ficheros VCRRUNTIME140.dll
MSVCP140.dll


¿Alguna solución?
Gracias de antemano
Saludos,
AHS961D José Mª Albarrán Molina LEBZ
-----------------------------------------------
Hola.

Esta todo bien. No pasa nada. Os cuento (gran rollo técnico..., aviso...)

Las DLL's son librerías de funciones agrupadas según su ámbito de aplicación que son utilizadas por los programas (ejecutables) para su funcionamiento en los distintos Sistemas Operativos (en cada uno recibe un nombre diferente, pero en esencia es lo mismo).

Desgraciadamente (o afortunadamente, quien sabe...), la dependencia con las DLL's es bastante compleja y entramada, existiendo ejecutables que dependen de DLL's, DLL's que dependen de otras DLL's y así sucesivamente, hasta que todo se resuelve. La cosa se complica un poco más porque las DLL's, igual que los ejecutables también tienen versiones, por lo que no solamente tiene que estar la DLL que, por ejemplo, contenga funciones asociadas a las comunicaciones, a los gráficos, a la gestión de lo que sea, sino que también tiene que ser la versión adecuada.

Cuando Windows carga un ejecutable en memoria, lo primero que hace es comprobar que están presentes (en memoria o en disco duro) todas las dependencias de éste (es decir, todas las DLL's que necesita). Si no encuentra alguna de ellas, lo notifica y no ejecuta el programa que es lo que le ha pasado a José María.

Los programas desarrollados para Windows en C y C++, utilizan varios conjuntos de librerías, dependiendo de las funciones o clases que utilicen y de su arquitectura de desarrollo (MFC, .NET, DIRECTX, OPENGL, etc.). En el caso del FSX-Join (sí digo FSX-Join), estaba desarrollado utilizando las MFC's de Microsoft (Microsoft Fundation Class) que se encuentran en los paquetes de los famosos redistributables (con distintas versiones y arquitecturas) y la suite de desarrollo de Visual Studio. Para mí eso fue una de las razones que me hizo volcar el desarrollo hacia otra librería, para evitar esas dependencias que eran un auténtico coñazo y fue cuando migre hacia el AHS-Join, que utiliza una librería y una suite de desarrollo distinta, denominada Qt que además es multiplataforma (un mismo código fuente, compilado en distintos sistemas operativos, genera ejecutables para esos sistemas, introduciendo mínimos cambios).

Lamentablemente no pude evitar hacer uso de la DLL, "Simconnect.dll" que es la que contiene las funciones de cliente para acceder al servidor de Simconnect, que es cómo se comunica el AHS-Join (y casi todos los clientes) con el simulador, y lamentablemente esta DLL sigue dependiendo de los redistributables, así que termine incorporándolos al paquete (los ejecutables para la instalación de éstos), para facilitar la instalación, sin tener que andar buscándolos por la red.

Estos redistributables no forman parte del programa de instalación/actualización del S.O. de Microsoft (la verdad que no sé porqué, ya que son de amplia utilización), pero los utiliza mucha gente, por lo que lo normal es que si hemos instalado varios programas (utilidades, juegos, aplicaciones en general), ya se encuentren instalados y no "cante" al ejecutar el AHS-Join. Si no estuvieran instalados, como en el caso de José María, al ser de reciente formateo su ordenador, se instalan manualmente y se resuelve el problema.

¿ Cómo se podría resolver esto de forma automática ?. Pues haciendo lo que hacen la mayor parte de los fabricantes de software, teniendo un pequeño ejecutable inicial (normalmente Setup.exe) que sin tener ninguna dependencia de librerías ni de DLL's, ni de ná, se encarga de instalar las librerías (redistributables y demás elementos) de forma previa, antes de lanzar el programa principal. En algún caso me he llegado a plantear hacerlo así, pero .... es que me da pereza..., je, je, je... Quizás ahora, que ando más desocupado me ponga con ello... ya veremos.

Perdonad por el rollo, pero ya había avisado, je, je, je...

Un saludo.

AHS436C Juan Pedro Garcia LECU

<Unquote>
Alvaro Escorcia
AHS712D - OMAA
Cerrado