追加する必要があります: とにかく、dll を \system32\ に入れるべきではありません! コードを変更し、インストーラーを変更します... c:\windows\ の下のどこにもないビットのホームを見つけます
たとえば、インストーラーは dll を次の場所に配置します。
\program files\<your app dir>\
or
\program files\common files\<your app name>\
(注:実際にこれを行う方法は、環境変数 %ProgramFiles% または %ProgramFiles(x86)% を使用して Program Files の場所を見つけることです.... c:\program files\ .. ..)
次に、レジストリ タグを設定します。
HKLM\software\<your app name>
-- dllLocation
dll を使用するコードは、レジストリを読み取り、その場所にある dll に動的にリンクします。
以上が賢い方法です。
\system32\ または \syswow64 に自分の dll またはサード パーティの dll をインストールしないでください。静的にロードする必要がある場合は、dll を exe ディレクトリ (見つかる場所) に配置します。exe ディレクトリを予測できない場合 (たとえば、他の exe が dll を呼び出す場合)、dll ディレクトリを検索パスに入れる必要がある場合があります (可能な場合はこれを避けてください!)。
system32 と syswow64 は、Windows が提供するファイル用です...他の人のファイル用ではありません。人々が何かをそこに置くという悪い習慣に陥った唯一の理由は、それが常に検索パスにあり、多くのアプリ/モジュールが静的リンクを使用しているためです. (つまり、本当に問題に取り掛かると、本当の罪は静的リンクです。これは、ネイティブ コードとマネージ コードの罪です。常に常に動的にリンクします!)