ฉันควรเพิ่ม: คุณไม่ควรใส่ dll ของคุณไว้ใน \ system32 \ อย่างไรก็ตาม! ปรับเปลี่ยนรหัสของคุณปรับเปลี่ยนการติดตั้งของคุณ ... ค้นหาบ้านสำหรับบิตของคุณที่ไม่ได้อยู่ใต้ c: \ windows \
ตัวอย่างเช่นโปรแกรมติดตั้งของคุณทำให้ DLLs ของคุณเป็น:
\program files\<your app dir>\
or
\program files\common files\<your app name>\
( หมายเหตุ : วิธีที่คุณทำเช่นนี้คือการใช้สภาพแวดล้อม var:% ProgramFiles% หรือ% ProgramFiles (x86)% เพื่อค้นหาตำแหน่งที่ Program Files คือ .... คุณไม่คิดว่ามันคือ c: \ program files \ .. .. )
จากนั้นตั้งค่าแท็กรีจิสทรี:
HKLM\software\<your app name>
-- dllLocation
รหัสที่ใช้ DLLs ของคุณอ่านรีจิสทรีจากนั้นเชื่อมโยงกับ DLLs ในตำแหน่งที่ตั้งนั้นแบบไดนามิก
ด้านบนเป็นวิธีที่ชาญฉลาดที่จะไป
คุณไม่เคยติดตั้ง DLLs ของคุณหรือ Dll บุคคลที่สามใน \ system32 \ หรือ \ syswow64 หากคุณต้องโหลดแบบคงที่คุณใส่ DLLs ของคุณใน exe dir ของคุณ (ที่พวกเขาจะพบ) หากคุณไม่สามารถคาดการณ์ exe dir (เช่น exe อื่น ๆ กำลังจะเรียก dll ของคุณ) คุณอาจต้องใส่ dll dir ของคุณในเส้นทางการค้นหา
system32 และ syswow64 สำหรับไฟล์ที่ให้กับ Windows ... ไม่ใช่สำหรับไฟล์ของคนอื่น เหตุผลเดียวที่ทำให้คนติดนิสัยในการวางสิ่งของเพราะมันมักจะอยู่ในเส้นทางการค้นหาและแอพ / โมดูลจำนวนมากใช้การเชื่อมโยงแบบสแตติก (ดังนั้นหากคุณลงไปจริงๆบาปที่แท้จริงคือการเชื่อมโยงแบบคงที่ - นี่เป็นบาปในรหัสพื้นเมืองและรหัสที่มีการจัดการ - มักจะเชื่อมโยงแบบไดนามิกเสมอ!)