Tengo un programa escrito en QT que funciona bien. Sin embargo, tiene una dependencia indirecta de dnssd.dll ya que un dll cargado por el programa usa bonjour. Si Bonjour no está instalado en la máquina que ejecuta el programa que va a decirMejorando el mensaje de error que falta dll
El programa no puede iniciarse porque dnssd.dll no se encuentra en su computadora . Intente volver a instalar el programa para solucionar el problema.
No estoy cargando este dll a través de LoadLibrary
o de lo contrario. Vinculaba el binario con el stub para que se cargue automáticamente antes de int main
.
Obviamente, la reinstalación del programa no soluciona el problema. Para mí, claramente dice que necesito instalar Bonjour, pero para la mayoría de los usuarios esto es extremadamente críptico.
Prefiero que este mensaje de error sea algo más informativo, como "Necesita instalar Bonjour para que esta aplicación funcione correctamente, vaya a [insert-url-here] para descargarla".
¿Hay alguna manera de detectar cuando un archivo DLL no carga esto y da un mejor mensaje de error?
¿Por qué no se empaqueta Bonjour en el instalador (no puedo decir cómo sin saber qué tipo de programa de instalación que está utilizando), o algo similar? –
Buena idea. La gente tiende a desinstalarlo ya que no saben de qué se trata. También es una molestia y creará un instalador más complicado y frágil. Tiene que tomar en cuenta que Bonjour ya está instalado, etc. – vidstige
¿Prefiere una aplicación más complicada y frágil en su lugar? Los buenos marcos de instalador proporcionan soluciones robustas para la mayoría de estos problemas. Este no es un problema sin resolver. –