Estoy trabajando duro para encontrar una solución elegante a un problema de carga de DLL. Tengo una aplicación que enlaza estáticamente a otros archivos lib que cargan archivos DLL. No estoy cargando las DLL directamente. Me gustaría tener algunos archivos DLL en otra carpeta que no sea la carpeta en la que se encuentra el ejecutable. Algo como% working_folder% \ dlls - Prefiero no tener docenas (sí ... docenas) de archivos DLL en mi% working_folder% .agregar una ruta de búsqueda DLL personalizada @ aplicación de inicio
Estoy tratando de desarrollar algo que sea parte de la aplicación principal que ajustará la ruta de búsqueda @ inicio. El problema al que me estoy enfrentando es que esta nueva ruta personalizada de DLL no se encuentra en la ruta de búsqueda del sistema. Cuando inicio la aplicación, falla (STATUS_DLL_NOT_FOUND) porque los archivos DLL necesarios no se encuentran en los lugares adecuados. Lo que me gustaría hacer es marcar @ startup si esta nueva carpeta DLL personalizada se encuentra en la ruta de búsqueda de la variable de entorno de proceso y, si no, agréguela. El problema es que la aplicación intenta cargar todas estas DLL antes de que la aplicación ejecute una línea de código.
¿Cómo puedo solucionar esto? Consideré escribir una aplicación de ayuda que comience primero, ajuste las variables de entorno de forma adecuada y lance la aplicación principal a través de CreateProcess. Esto funcionará, estoy seguro, pero dificulta las cosas a los desarrolladores. Cuando depuran la aplicación principal, no van a lanzar primero una aplicación de ayuda, ni siquiera podrían hacer eso.
He intentado la función de ruta de la aplicación de registro sin éxito. Mismo problema de huevo y pollo que antes.
¿Qué puedo hacer aquí?
qué Windows tiene algo así como @load_path en OS X? A saber, a la ruta de búsqueda definida relativa a la DLL actual o algo así? Gracias. – Royi