Варто додати: у жодному разі не слід вводити ваші DLL в \ system32 \! Змініть свій код, модифікуйте інсталятор ... знайдіть будинок для своїх бітів, який НІСЕ під c: \ windows \
Наприклад, ваш інсталятор розміщує ваші клітини в:
\program files\<your app dir>\
or
\program files\common files\<your app name>\
( Примітка : спосіб, який ви насправді це робите, - це використовувати середовище var:% ProgramFiles% або% ProgramFiles (x86)%, щоб знайти, де файли програм .... ви не вважаєте, що це c: \ програмні файли \ .. ..)
а потім встановлює тег реєстру:
HKLM\software\<your app name>
-- dllLocation
Код, який використовує ваші dlls, зчитує реєстр, а потім динамічно посилається на dlls у цьому місці.
Сказане вище - розумний шлях.
Ви ніколи не встановлюєте своїх dll або сторонніх dll в \ system32 \ або \ syswow64. Якщо вам доведеться статично завантажуватись, ви поміщаєте ваші коси в свій exe dir (там вони будуть знайдені). Якщо ви не можете передбачити exe dir (наприклад, якийсь інший exe зателефонує на ваш dll), можливо, вам доведеться поставити dll dir в шлях пошуку (уникайте цього, якщо це можливо!)
system32 і syswow64 призначені для файлів, що надаються Windows ... не для інших . Єдина причина, чому люди потрапили в шкідливу звичку розміщувати туди речі, це тому, що вона завжди перебуває на шляху пошуку, і багато додатків / модулів використовують статичні зв'язки. (Отже, якщо ви дійсно переходите до цього, справжній гріх - це статичне посилання - це гріх у рідному коді та керованому коді - завжди завжди завжди динамічно посилається!)