Siguiendo la guía de Microsoft, http://msdn.microsoft.com/en-us/library/ee872121(VS.85).aspx, puedo hacer que mi programa pueda hacer que un programa resuelva las bibliotecas dinámicas que se requieren para para que funcioneAgregar rutas de acceso específicas de una aplicación, entonces funciona desde la línea de comando en Windows
Así que agrego un valor con el nombre completo y la ruta a mi ejecutable, y agrego una subclave a esta entrada (ruta con nombre) con la ruta completa al directorio de los archivos DLL.
Y mágico. Funciona. Voy al menú de inicio y escribo myprogram.exe, que se inicia y ahora puede ubicar correctamente los archivos dll.
Sin embargo, si inicio el símbolo del sistema con el comando cmd.exe y luego intento ejecutar myprogram.exe ya no puede resolver las DLL. Por alguna razón, el símbolo del sistema no parece respetar/leer los valores del registro cuando está configurado en HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ App Paths
Cualquier sugerencia sobre cómo puedo lograr que este comportamiento funcione desde el símbolo del sistema y desde el menú de inicio?
Perfecto. Esto resuelve el problema. – Smidstrup
¿Qué quiere decir con "usar la subclave de rutas de la aplicación con el nombre cmd.exe"? –
@Mikhail Orlov: puede crear una subclave "cmd.exe" en la ruta 'HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ App' y crear el valor REG_SZ con el nombre" Ruta "y cualquier ruta como valor. Luego elige al comienzo "cmd.exe" desde el menú de inicio "Ejecutar". Puede ver con "establecer RUTA" que la variable Entorno de ruta tiene la ruta que ingresa en el registro como la primera. – Oleg