2009-10-05 23 views
6

Nếu tôi liên kết một mô-đun với mydll.dll, được triển khai bằng WinSxS, tiêu đề PE trong mô-đun của tôi sẽ chỉ đơn giản là tham chiếu "mydll.dll". Làm thế nào để Windows xác định trong thời gian chạy, trước hết là phụ thuộc này nên được tải thông qua WinSxS, và thứ hai là những gì lắp ráp nó trong?Làm thế nào để WinSxS phân giải các tên DLL thành các vị trí DLL?

+0

Theo dự đoán tốt nhất, nó có một phiên bản của tập DLL được đặt mặc định trừ khi tệp kê khai cho biết cách khác. – Powerlord

+0

Tôi nghĩ rằng điều này thuộc về Super User, không phải SO. –

+1

Tại sao? Nó có rất nhiều sự liên quan đến lập trình (như là câu chuyện gần đây /., Trong đó 90% độc giả không hiểu SxS là gì hoặc nó hoạt động như thế nào). –

Trả lời

7

Làm như vậy thông qua "ngữ cảnh kích hoạt". Theo tôi, WinSxS không có ý nghĩa gì cho đến khi bạn tìm hiểu về ngữ cảnh kích hoạt và cách nó được quản lý.

Tôi đã đặt một bài đăng trên blog khá dài giải thích chi tiết tại số http://omnicognate.wordpress.com/2009/10/05/winsxs/. Để tóm tắt bài báo, bối cảnh kích hoạt là một cấu trúc mà WinSxS sử dụng trong thời gian chạy để giải quyết các tên đối tượng không phiên bản (ví dụ: tên DLL) để có thông tin đầy đủ về cách định vị chúng. Mục đích của "manifest" trong WinSxS là xây dựng các bối cảnh kích hoạt. Nếu không hiểu cách thức và khi nào các bối cảnh kích hoạt này được xây dựng và cách chúng được quản lý (chúng được tổ chức trên một ngăn xếp thread-local) thì không thể lý do thông qua các bước liên quan đến việc tải một DLL thông qua WinSxS và do đó không thể chẩn đoán được phần lớn các vấn đề có thể phát sinh.

+0

Bài viết này đã được đăng ở định dạng Q/A do các đề xuất về meta: http://meta.stackexchange.com/questions/24608/what-is-the-etiquette-for-posting-an-article. –

+0

Lưu ý: Tôi đề nghị đưa ít nhất một ít bài viết vào câu trả lời, để thiết lập sự liên quan của nó. –

Các vấn đề liên quan