Mi sto tormentando il cervello cercando di trovare una soluzione elegante a un problema di caricamento della DLL. Ho un'applicazione che si collega staticamente ad altri file lib che caricano DLL. Non sto caricando direttamente le DLL. Mi piacerebbe avere alcune DLL in un'altra cartella diversa dalla cartella in cui si trova l'eseguibile. Qualcosa come% working_folder% \ dlls - Preferirei non avere dozzine (sì ... dozzine) di DLL nel mio% working_folder% .aggiungi percorso di ricerca DLL personalizzato all'avvio dell'applicazione
Sto provando a sviluppare qualcosa che fa parte dell'app principale che regolerà il percorso di ricerca @ startup. Il problema che sto incontrando è che questo nuovo percorso DLL personalizzato non si trova nel percorso di ricerca del sistema. Quando avvio l'app si blocca (STATUS_DLL_NOT_FOUND) perché le DLL necessarie non si trovano nelle posizioni appropriate. Quello che mi piacerebbe fare è controllare @ startup se questa nuova cartella DLL personalizzata si trova nel percorso di ricerca della variabile di ambiente di processo e se non la aggiunge. Il problema è che l'applicazione tenta di caricare tutte queste DLL prima che l'app esegua una riga di codice.
Come posso risolvere questo problema? Ho preso in considerazione la scrittura di un'app di guida che inizia per prima, regola le variabili di ambiente in modo appropriato e avvia l'app principale tramite CreateProcess. Questo funzionerà ne sono sicuro, ma rende le cose difficili agli sviluppatori. Quando eseguono il debug dell'applicazione principale, non avviano prima un'app helper, non che potrebbero persino farlo.
Ho provato la funzionalità del percorso dell'app del registro senza esito. Lo stesso problema con il pollo e le uova di prima.
Cosa posso fare qui?
fa di Windows ha qualcosa come @load_path in OS X? Vale a dire definito percorso di ricerca relativo alla DLL corrente o qualcosa del genere? Grazie. – Royi