Estoy escribiendo una DLL para conectarla a otra aplicación (de terceros). La DLL necesitará depender de otro conjunto de DLL (por razones de licencia no puedo vincular estáticamente).DLL de complementos que dependen de otras DLL
Me gustaría que mi archivo DLL sea "xcopy-deplorable" en cualquier directorio. También me gustaría no requerir agregar este directorio a la ruta.
Si acabo de construir el archivo DLL de la manera habitual, Windows rechazará cargar el archivo DLL, ya que no puede encontrar los archivos DLL al lado del proceso actual.
¿Hay alguna buena opción para ayudar a Windows a encontrar la DLL?
para responder a algunas preguntas:
- La DLL está escrito en C++.
- Las DLL adicionales son QT-dlls.
- Me gustaría colocar los archivos DLL adicionales en la misma carpeta que mi complemento DLL. Puedo obtener el nombre de esa carpeta en
GetModuleFileName
. - La aplicación es Firefox, la DLL es un módulo de seguridad PKCS # 11.
- La aplicación carga el archivo DLL utilizando la ruta completa al archivo DLL (el usuario lo proporciona al instalar el complemento).
- Exigir que las DLL se coloquen en System32 o junto a la aplicación funcionaría, pero es un poco complicado y podría causar problemas con los desinstaladores.
LoadLibrary
yGetProcAddress
por supuesto funcionaría, pero no es realmente factible en mi caso. Estoy usando cientos, si no miles, de métodos en las otras DLL. Realmente necesito usar las bibliotecas de importación.
Había pensado en usar dlls cargados con delay combinados con SetDllDirectory
en DllMain. ¿Alguien ha intentado algo como esto?
¿Qué tecnología estás usando? .¿red? –
Su premisa no tiene sentido y está rota. –
Siempre puedes colocar los dlls en la carpeta System32 ... – Kryten