Dovrei aggiungere: non dovresti mettere comunque le tue DLL in \ system32 \! Modifica il tuo codice, modifica il tuo programma di installazione ... trova una casa per i tuoi bit che NON è da nessuna parte in c: \ windows \
Ad esempio, il tuo programma di installazione inserisce le tue dll in:
\program files\<your app dir>\
or
\program files\common files\<your app name>\
( Nota : il modo in cui lo si fa effettivamente è utilizzare l'ambiente var:% ProgramFiles% o% ProgramFiles (x86)% per trovare dove si trova Program Files .... non si assume che sia c: \ program files \ .. ..)
e quindi imposta un tag di registro:
HKLM\software\<your app name>
-- dllLocation
Il codice che utilizza le DLL legge il registro, quindi si collega dinamicamente alle DLL in quella posizione.
Quanto sopra è il modo intelligente di andare.
Non installi mai le tue dll o dll di terze parti in \ system32 \ o \ syswow64. Se devi caricare staticamente, metti le tue dll nella tua directory exe (dove saranno trovate). Se non riesci a prevedere la directory exe (es. Qualche altra exe chiamerà la tua dll), potresti dover inserire la tua dir dll nel percorso di ricerca (evitalo se possibile!)
system32 e syswow64 sono per i file forniti da Windows ... non per i file di qualcun altro . L'unica ragione per cui la gente ha preso la cattiva abitudine di mettere cose lì è perché è sempre nel percorso di ricerca e molte app / moduli usano collegamenti statici. (Quindi, se ci si arriva davvero, il vero peccato è il collegamento statico - questo è un peccato nel codice nativo e nel codice gestito - sempre sempre sempre link dinamico!)