Tôi nên thêm: Bạn không nên đưa dll của bạn vào \ system32 \! Sửa đổi mã của bạn, sửa đổi trình cài đặt của bạn ... tìm một ngôi nhà cho các bit của bạn KHÔNG ở đâu trong c: \ windows \
Ví dụ: trình cài đặt của bạn đặt dlls của bạn vào:
\program files\<your app dir>\
or
\program files\common files\<your app name>\
( Lưu ý : Cách bạn thực sự làm điều này là sử dụng môi trường var:% ProgramFiles% hoặc% ProgramFiles (x86)% để tìm vị trí Tệp chương trình .... bạn không cho rằng đó là c: \ tệp chương trình \ .. ..)
và sau đó đặt thẻ đăng ký:
HKLM\software\<your app name>
-- dllLocation
Mã sử dụng các dll của bạn đọc registry, sau đó tự động liên kết với các dll ở vị trí đó.
Trên đây là cách thông minh để đi.
Bạn chưa bao giờ cài đặt dll của mình hoặc dll của bên thứ ba vào \ system32 \ hoặc \ syswow64. Nếu bạn phải tải tĩnh, bạn đặt dlls của bạn vào thư mục exe của bạn (nơi chúng sẽ được tìm thấy). Nếu bạn không thể dự đoán thư mục exe (ví dụ: một số exe khác sẽ gọi dll của bạn), bạn có thể phải đưa thư mục dll của mình vào đường dẫn tìm kiếm (tránh điều này nếu có thể!)
system32 và syswow64 dành cho các tệp do Windows cung cấp ... không dành cho bất kỳ ai sử dụng các tệp . Lý do duy nhất khiến mọi người có thói quen xấu là đặt công cụ đó là vì nó luôn nằm trong đường dẫn tìm kiếm và nhiều ứng dụng / mô-đun sử dụng liên kết tĩnh. (Vì vậy, nếu bạn thực sự hiểu về nó, tội lỗi thực sự là liên kết tĩnh - đây là một tội lỗi trong mã gốc và mã được quản lý - luôn luôn luôn liên kết động!)