Sto scrivendo una DLL per collegarla a un'altra applicazione (di terze parti). La DLL dovrà dipendere da un altro insieme di DLL (per ragioni di licenza non posso collegare staticamente).DLL plugin che dipendono da altre DLL
Vorrei che la mia DLL fosse "xcopy-deployable" in qualsiasi directory. Vorrei anche non aver bisogno di aggiungere questa directory al percorso.
Se si crea la DLL nel modo consueto, Windows rifiuterà di caricare la DLL, poiché non riesce a trovare le DLL accanto al processo corrente.
Esistono buone opzioni per aiutare Windows a individuare la DLL?
rispondere ad alcune domande:
- La DLL è scritto in C++.
- Le DLL aggiuntive sono QT-dll.
- Vorrei collocare le DLL aggiuntive nella stessa cartella della mia DLL di plugin. Posso ottenere il nome di quella cartella da
GetModuleFileName
. - L'applicazione è Firefox, la DLL è un modulo di sicurezza PKCS # 11.
- L'applicazione carica la DLL utilizzando il percorso completo della DLL (l'utente lo fornisce durante l'installazione del plug-in).
- La richiesta di collocare le DLL in System32 o accanto all'applicazione potrebbe funzionare, ma è un po 'caotica e potrebbe causare problemi con i programmi di disinstallazione.
LoadLibrary
eGetProcAddress
funzionerebbero, ma nel mio caso non è fattibile. Sto usando centinaia, se non migliaia, di metodi nelle altre DLL. Ho davvero bisogno di usare le librerie di importazione.
Avevo pensato di utilizzare le DLL caricate in ritardo combinate con SetDllDirectory
in DllMain. Qualcuno ha provato qualcosa di simile?
Che tecnologia stai usando? .netto? –
La tua premessa non ha senso ed è infranta. –
Si può sempre inserire le DLL nella cartella System32 ... – Kryten