Ben eklemeliyim: Sen zaten \ system32 \ içine dll's koyarak olmamalı! Kodunuzu değiştirin, yükleyicinizi değiştirin ... bitleriniz için c: \ windows \ altında bir yerde OLMAYAN bir ev bulun
Örneğin, yükleyiciniz dll'lerinizi koyar:
\program files\<your app dir>\
or
\program files\common files\<your app name>\
( Not : Gerçekte bunu yapmanın yolu , Program Dosyalarının nerede olduğunu bulmak için var:% ProgramFiles% veya% ProgramFiles (x86)% ortamını kullanmaktır ... bunun c: \ program files \ olduğunu varsaymazsınız. ..)
ve ardından bir kayıt defteri etiketi ayarlar:
HKLM\software\<your app name>
-- dllLocation
Dll'lerinizi kullanan kod, kayıt defterini okur ve dinamik olarak o konumdaki dll'lere bağlanır.
Yukarıdakiler akıllıca bir yol.
Hiçbir zaman dll'lerinizi veya üçüncü taraf dll'lerini \ system32 \ veya \ syswow64 içine kurmazsınız. Eğer statik olarak yüklemek zorunda kalırsanız, exe dir dlls koymak (nerede bulunur). Eğer exe dir tahmin edemez (örneğin diğer bazı exe dll arayacaksınız), arama yoluna dll dir koymak zorunda kalabilirsiniz (hiç poss!
system32 ve syswow64 Windows tarafından sağlanan dosyalar içindir ... başkalarının dosyaları için değil . İnsanların her zaman arama yolunda olması ve birçok uygulama / modül statik bağlantı kullanması nedeniyle bir şeyler koyma alışkanlığına girmenin tek nedeni. (Yani, gerçekten aşağı inerseniz, gerçek günah statik bağlantı - bu yerel kod ve yönetilen kod bir günah - her zaman her zaman dinamik olarak bağlantı!)