Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Trình duyệt của bạn không được hỗ trợ

Bạn cần cập nhật trình duyệt của mình để sử dụng trang web.

Cập nhật lên Internet Explorer phiên bản mới nhất.

Một DLL là gì?

Hỗ trợ cho Windows XP đã kết thúc

Microsoft đã kết thúc hỗ trợ dành cho Windows XP vào ngày 8 tháng 4 năm 2014. Thay đổi này đã ảnh hưởng đến các bản cập nhật phần mềm và tùy chọn bảo mật của bạn. Tìm hiểu ý nghĩa của điều này với bạn và cách thực hiện để luôn được bảo vệ.

Hỗ trợ dành cho Office 2003 đã kết thúc

Microsoft đã kết thúc hỗ trợ dành cho Office 2003 vào ngày 8 tháng 4 năm 2014. Thay đổi này đã ảnh hưởng đến các bản cập nhật phần mềm và các tùy chọn bảo mật của bạn. Tìm hiểu ý nghĩa của điều này với bạn và cách thực hiện để luôn được bảo vệ.

Hỗ trợ cho Windows Server 2003 đã kết thúc vào ngày 14 tháng 7 năm 2015

Microsoft đã kết thúc hỗ trợ cho Windows Server 2003 vào ngày 14 tháng 7 năm 2015. Thay đổi này đã ảnh hưởng đến các bản cập nhật phần mềm và tùy chọn bảo mật của bạn. Tìm hiểu ý nghĩa của điều này với bạn và cách thực hiện để luôn được bảo vệ.

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch thuật của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa lại thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung cấp các bài viết được cả biên dịch viên và phần mềm dịch thuật thực hiện và cộng đồng chỉnh sửa lại để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng nhiều ngôn ngữ Tuy nhiên, bài viết do máy dịch hoặc thậm chí cộng đồng chỉnh sửa sau không phải lúc nào cũng hoàn hảo. Các bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này: 815065
Tóm tắt
Bài viết này mô tả những gì một thư viện liên kết động (DLL) và nhiều vấn đề có thể xảy ra khi bạn sử dụng dll.

Sau đó, bài viết này mô tả một số vấn đề nâng cao mà bạn nên xem xét khi bạn phát triển DLL của riêng bạn. Trong mô tả những gì một DLL, bài viết này mô tả phương pháp năng động liên kết, DLL phụ thuộc, DLL nhập điểm, xuất khẩu DLL chức năng, và DLL xử lý sự cố công cụ.

Bài viết này kết thúc với một so sánh cao cấp của DLL để hội Microsoft NET Framework.
GIỚI THIỆU
Cho hệ điều hành Microsoft Windows, được liệt kê trong phần "Áp dụng để", hầu hết các chức năng của hệ điều hành được cung cấp bởi thư viện liên kết động (DLL). Ngoài ra, khi bạn chạy một Các chương trình trên một trong những hệ điều hành Windows, hầu hết các chức năng của chương trình có thể được cung cấp bởi dll. Ví dụ, một số chương trình có thể chứa nhiều mô-đun khác nhau, và mỗi mô-đun của chương trình được chứa và Chúng phân bố ở dll.

Sử dụng file DLL giúp thúc đẩy mô-đun của Mã, mã tái sử dụng, Sử dụng Bộ nhớ hiệu quả và giảm đĩa. Do đó, hệ điều hành và các chương trình tải nhanh hơn, chạy nhanh hơn và có ít hơn không gian đĩa trên máy tính.

Khi một chương trình sử dụng một DLL, một vấn đề mà được gọi là phụ thuộc có thể gây ra chương trình không chạy. Khi một chương trình sử dụng một DLL, một sự phụ thuộc tạo ra. Nếu một chương trình ghi đè và phá vỡ này phụ thuộc, chương trình ban đầu không thể thành công chạy.

Với các giới thiệu về Microsoft Khuôn khổ .NET, hầu hết các vấn đề phụ thuộc có được loại bỏ bằng cách sử dụng hội đồng.
Thông tin thêm

Một DLL là gì?

Một DLL là một thư viện có chứa mã và dữ liệu có thể được sử dụng bởi nhiều hơn một chương trình cùng một lúc. Ví dụ, trong cửa sổ hoạt động Hệ thống, tệp DLL Comdlg32 thực hiện phổ biến hộp thoại hộp liên quan đến chức năng. Vì vậy, mỗi chương trình có thể sử dụng các chức năng được chứa trong này DLL để thực hiện một Mở hộp thoại. Điều này giúp thúc đẩy tái sử dụng mã và Sử dụng Bộ nhớ hiệu quả.

Bằng cách sử dụng một DLL, một chương trình có thể Modularized thành phần riêng biệt. Ví dụ, một chương trình kế toán có thể bán bởi mô-đun. Mỗi mô-đun có thể được nạp vào chương trình chính tại thời gian chạy nếu Mô-đun đó được cài đặt chuyên biệt. Bởi vì các mô-đun riêng biệt, thời gian tải của chương trình này là nhanh hơn, và một mô-đun chỉ được nạp khi chức năng đó là yêu cầu.

Ngoài ra, bản Cập Nhật dễ dàng hơn để áp dụng cho mỗi mô-đun mà không ảnh hưởng đến các bộ phận khác của chương trình. Ví dụ, bạn có thể có một chương trình tính lương, và thuế suất thay đổi mỗi năm. Khi những thay đổi này bị cô lập để một DLL, bạn có thể áp dụng một bản Cập Nhật mà không cần phải xây dựng hoặc cài đặt chuyên biệt chương trình toàn bộ một lần nữa.

Danh sách sau đây mô tả một số các tập tin được thực hiện như dll trong Windows hệ điều hành:
  • điều khiển ActiveX (.ocx) tập tin
    Một ví dụ của điều khiển ActiveX là một lịch kiểm soát mà cho phép bạn chọn một ngày lịch.
  • Kiểm soát tập tin Panel điều khiển (.cpl)
    Một ví dụ của một tập tin .cpl là một mục mà nằm ở Panel điều khiển. Mỗi mục là một DLL chuyên ngành.
  • Tệp trình điều khiển (.drv) thiết bị
    Một ví dụ về một trình khiển trình là một trình trình điều khiển máy in mà kiểm soát việc in ấn với máy in.

Lợi thế DLL

Danh sách sau đây mô tả một số trong những lợi thế có được cung cấp khi sử dụng một chương trình một DLL:
  • Sử dụng ít tài nguyên
    Khi nhiều chương trình sử dụng cùng một thư viện của chức năng, một DLL có thể giảm thiểu sao chép mã được tải vào đĩa và trong bộ nhớ vật lý. Điều này có thể rất nhiều ảnh hưởng hiệu suất của không chỉ các chương trình đang chạy tại phía sau, nhưng cũng có các chương trình khác có chạy trên hệ điều hành Windows.
  • Khuyến khích kiến trúc mô-đun
    Một DLL giúp thúc đẩy phát triển các mô-đun chương trình. Điều này sẽ giúp bạn phát triển chương trình lớn cần nhiều phiên bản ngôn ngữ hoặc một chương trình đòi hỏi phải có kiến trúc kiểu mô-đun. Một ví dụ của một chương trình mô-đun là một chương trình kế toán có nhiều mô-đun có thể được tự động nạp lúc khởi thời gian.
  • Eases triển khai và cài đặt chuyên biệt
    Khi một chức năng trong một DLL cần một bản Cập Nhật hoặc sửa chữa một, các triển khai và cài đặt chuyên biệt các tệp DLL không yêu cầu các chương trình để relinked với tệp DLL. Ngoài ra, nếu nhiều chương trình sử dụng cùng một DLL, các nhiều chương trình sẽ được hưởng lợi tất cả từ bản Cập Nhật hoặc sửa chữa. Vấn đề này có thể thường xuyên hơn có thể xảy ra khi bạn sử dụng một DLL bên thứ ba được thường xuyên Cập Nhật hoặc cố định.

DLL phụ thuộc

Khi một chương trình hoặc một DLL sử dụng một chức năng DLL trong một DLL, một phụ thuộc được tạo ra. Vì vậy, các chương trình không còn khép kín, và chương trình có thể gặp vấn đề nếu phụ thuộc là bị hỏng. Ví dụ: chương trình có thể không chạy nếu một trong những hành động sau đây xảy ra:
  • Một DLL phụ thuộc được nâng cấp lên phiên bản mới.
  • Một DLL phụ thuộc cố định.
  • Một DLL phụ thuộc ghi đè bằng một trước đó Phiên bản.
  • Một DLL phụ thuộc bị xóa khỏi máy tính.
Những hành động này thường được gọi là DLL xung đột. Nếu quay trở lại khả năng tương hợp về sau không được thi hành, chương trình có thể không thành công chạy.

Danh sách sau đây mô tả các thay đổi đã giới thiệu trong Microsoft Windows 2000 và sau đó các hệ điều hành Windows để giúp giảm thiểu các vấn đề phụ thuộc:
  • Bảo vệ tệp của Windows
    Trong bảo vệ tệp của Windows, hệ điều hành ngăn chặn Hệ thống file DLL từ sự Cập Nhật hoặc xóa bỏ bởi một đại lý trái phép. Do đó, khi cài đặt chuyên biệt chương trình cố gắng để loại bỏ hoặc cập nhật một DLL được định nghĩa là một hệ thống DLL, bảo vệ tệp của Windows sẽ tra cứu một kỹ thuật số hợp lệ chữ ký.
  • Riêng dll
    Dll riêng cho phép bạn cô lập một chương trình từ thay đổi mà thực hiện để chia sẻ riêng DLL DLL. sử dụng thông tin Phiên bản cụ thể hoặc một sản phẩm nào .Local các tập tin để thực thi các phiên bản của tệp DLL được sử dụng bởi chương trình khác. Để sử dụng riêng dll, xác định vị trí của bạn dll trong mục tin thư thoại gốc của chương trình. Sau đó, cho mới chương trình, thêm thông tin dành riêng cho phiên bản tệp DLL. Đối với chương trình cũ, sử dụng một tập tin .local có sản phẩm nào. Mỗi phương pháp cho hệ điều hành để sử dụng tư nhân DLL được đặt trong mục tin thư thoại gốc của chương trình.

DLL công cụ khắc phục sự cố

Một số công cụ có sẵn để giúp bạn gỡ rối các vấn đề DLL. Các công cụ sau đây là một số trong những công cụ này.

Phụ thuộc Walker

Phụ thuộc Walker công cụ có thể quét đệ quy cho tất cả phụ thuộc DLL được sử dụng bởi một chương trình. Khi bạn mở một chương trình phụ thuộc Walker, Phụ thuộc Walker thực hiện kiểm tra sau đây:
  • Phụ thuộc Walker kiểm tra thiếu dll.
  • Phụ thuộc Walker kiểm tra tệp chương trình hoặc DLL có không hợp lệ.
  • Phụ thuộc Walker kiểm tra rằng chức năng nhập khẩu và xuất khẩu chức năng phù hợp với.
  • Phụ thuộc Walker kiểm tra tròn phụ thuộc lỗi.
  • Phụ thuộc Walker kiểm tra cho mô-đun mà không phải là hợp lệ bởi vì các mô-đun là một hệ điều hành khác nhau.
Bằng cách phụ thuộc theo sử dụng Walker, bạn có thể tài liệu tất cả các file DLL đó một chương trình sử dụng. Điều này có thể giúp ngăn ngừa và khắc phục vấn đề DLL có thể xảy ra trong trong tương lai. Phụ thuộc Walker nằm trong mục tin thư thoại sau khi bạn cài đặt chuyên biệt Microsoft Visual Studio 6.0:
lái xe\Program Files\Microsoft hình ảnh Studio\Common\Tools

DLL phổ quát vấn đề Solver

DLL phổ quát vấn đề Solver (DUPS) công cụ được sử dụng để kiểm tra, so sánh, tài liệu, và hiển thị thông tin DLL. Danh sách sau đây mô tả Các tiện ích mà làm cho công cụ DUPS:
  • Dlister.exe
    Tiện ích này liệt kê tất cả các file DLL trên các máy tính và các bản ghi Các thông tin vào một tập tin văn bản hoặc vào một tập tin bộ máy cơ sở dữ liệu.
  • Dcomp.exe
    Tiện ích này so sánh các file dll được liệt kê trong hai văn bản tập tin và tạo ra một tập tin văn bản thứ ba có sự khác biệt.
  • Dtxt2DB.exe
    Tiện ích này tải các tập tin văn bản được tạo ra bằng cách sử dụng Các tiện ích Dlister.exe và tiện ích Dcomp.exe vào dllHell bộ máy cơ sở dữ liệu.
  • DlgDtxt2DB.exe
    Tiện ích này cung cấp một giao diện người dùng đồ hoạ (GUI) Phiên bản của các tiện ích Dtxt2DB.exe.
Cho thông tin thêm về công cụ DUPS, nhấp vào số bài viết sau đây để Xem bài viết trong cơ sở kiến thức Microsoft:
247957Sử dụng DUPS.exe để giải quyết vấn đề tương hợp về sau DLL

DLL phát triển

Phần này mô tả các vấn đề và các yêu cầu mà bạn nên xem xét khi bạn phát triển DLL của riêng bạn.

Trong số các loại file DLL

Khi bạn tải một DLL trong một ứng dụng, hai phương pháp kết nối cho bạn gọi các chức năng DLL xuất khẩu. Hai phương pháp kết nối có thời gian tải liên kết năng động và thời gian chạy năng động liên kết.
Thời gian tải năng động liên kết
Trong thời gian tải liên kết năng động, một ứng dụng làm cho rõ ràng cuộc gọi để xuất khẩu DLL chức năng như chức năng địa phương. Để sử dụng năng động thời gian tải liên kết, cung cấp một tiêu đề (.h) tập tin và một thư viện nhập khẩu (.lib) tập tin khi bạn biên dịch và liên kết các ứng dụng. Khi bạn làm điều này, linker sẽ cung cấp cho các thông tin hệ thống là cần thiết để tải DLL và giải quyết các DLL chức năng xuất khẩu vị trí tại thời gian tải.
Thời gian chạy năng động liên kết
Trong thời gian chạy năng động liên kết, một ứng dụng gọi các chức năng LoadLibrary hoặc các chức năng LoadLibraryEx để tải tệp DLL tại thời gian chạy. Sau khi tệp DLL nạp thành công, bạn sử dụng các chức năng GetProcAddress để lấy địa chỉ xuất khẩu các DLL hoạt động mà bạn muốn gọi. Khi bạn sử dụng thời gian chạy năng động liên kết, bạn không cần một nhập khẩu các tập tin thư viện.

Danh sách sau đây mô tả các ứng dụng tiêu chuẩn khi sử dụng thời gian tải liên kết năng động và khi nào để sử dụng thời gian chạy năng động liên kết:
  • Hiệu suất khởi động
    Nếu hiệu suất ban đầu khởi động của các ứng dụng quan trọng, bạn nên sử dụng thời gian chạy năng động liên kết.
  • Dễ sử dụng
    Trong thời gian tải năng động liên kết, các chức năng DLL xuất khẩu là giống như chức năng địa phương. Điều này làm cho nó dễ dàng để bạn có thể gọi những chức năng.
  • Ứng dụng logic
    Trong thời gian chạy năng động liên kết, một ứng dụng có thể chi nhánh để tải mô-đun khác nhau theo yêu cầu. Điều này là quan trọng khi bạn phát triển Phiên bản đa ngôn ngữ.

Điểm nhập DLL

Khi bạn tạo một DLL, bạn có thể tùy chọn xác định một điểm nhập cảnh chức năng. Điểm nhập hàm được gọi là khi quá trình hoặc chủ đề đính kèm mình để DLL hoặc tách mình khỏi tệp DLL. Bạn có thể sử dụng các điểm nhập hàm khởi tạo cấu trúc dữ liệu hoặc phá hủy dữ liệu cấu trúc theo yêu cầu của tệp DLL. Ngoài ra, nếu các ứng dụng multithreaded, bạn có thể sử dụng chủ đề lưu trữ cục bộ (TLS) để cấp phát bộ nhớ mà là tư nhân để mỗi chủ đề trong điểm nhập hàm. Các mã sau đây là một Ví dụ về DLL điểm nhập hàm.
BOOL APIENTRY DllMain(HANDLE hModule,	// Handle to DLL module	DWORD ul_reason_for_call,	// Reason for calling function	LPVOID lpReserved ) // Reserved{	switch ( ul_reason_for_call )	{		case DLL_PROCESS_ATTACHED:		// A process is loading the DLL.		break;		case DLL_THREAD_ATTACHED:		// A process is creating a new thread.		break;		case DLL_THREAD_DETACH:		// A thread exits normally.		break;		case DLL_PROCESS_DETACH:		// A process unloads the DLL.		break;	}	return TRUE;}
Khi điểm nhập hàm trả về một giá trị sai , các ứng dụng sẽ không Bắt đầu nếu bạn đang sử dụng thời gian tải năng động liên kết. Nếu bạn đang sử dụng thời gian chạy động nối, chỉ cá nhân DLL sẽ không tải.

Điểm nhập hàm chỉ nên thực hiện đơn giản khởi tạo nhiệm vụ và không nên gọi cho bất kỳ DLL tải nào khác hay một chấm dứt chức năng. Ví dụ, ở điểm nhập hàm, bạn nên không trực tiếp hoặc gián tiếp gọi các chức năng LoadLibrary hoặc các chức năng LoadLibraryEx . Ngoài ra, quý vị nên không gọi các chức năng FreeLibrary khi quá trình này chấm dứt.

Lưu ý Trong các ứng dụng multithreaded, hãy chắc chắn rằng truy cập tệp DLL dữ liệu toàn cầu được đồng bộ hoá (chủ đề an toàn) để tránh dữ liệu có thể tham nhũng. Để thực hiện việc này, sử dụng TLS để cung cấp dữ liệu duy nhất cho mỗi chủ đề.

Xuất khẩu DLL chức năng

Để xuất khẩu DLL chức năng, bạn có thể thêm một từ khóa chức năng để DLL xuất khẩu chức năng hoặc tạo ra một tập tin định nghĩa (.def) mô-đun danh sách Các chức năng DLL xuất khẩu.

Để sử dụng một từ khóa chức năng, bạn phải tuyên bố mỗi chức năng mà bạn muốn xuất chuyển từ khoá sau đây:
__declspec(dllexport)
Để sử dụng xuất khẩu DLL chức năng trong các ứng dụng, bạn phải tuyên bố mỗi chức năng mà bạn muốn chuyển nhập từ khoá sau đây:
__declspec(dllimport)
Thông thường, bạn sẽ sử dụng một tập tin tiêu đề đã tuyên bố xác định và một tuyên bố ifdef để tách các tuyên bố xuất khẩu và nhập khẩu tuyên bố.

Bạn cũng có thể sử dụng một tập tin định nghĩa mô-đun để tuyên bố xuất khẩu DLL chức năng. Khi bạn sử dụng một tập tin định nghĩa mô-đun, bạn phải để thêm từ khóa chức năng chức năng DLL xuất khẩu. Trong các mô-đun tệp định nghĩa, bạn tuyên bố tuyên bố Thư viện và tuyên bố xuất khẩu cho tệp DLL. Các mã sau đây là một ví dụ về một tệp định nghĩa.
// SampleDLL.def//LIBRARY "sampleDLL"EXPORTS  HelloWorld

Mẫu DLL và ứng dụng

Trong Microsoft Visual C ++ 6.0, bạn có thể tạo một DLL bằng cách chọn hoặc các Win32 Thư viện móc nối động dự án loại hoặc MFC AppWizard (dll) dự án loại.

Các mã sau đây là một ví dụ về một DLL đã được tạo trong Visual C++ bằng cách sử dụng các Win32 Thư viện móc nối động dự án loại.
// SampleDLL.cpp//#include "stdafx.h"#define EXPORTING_DLL#include "sampleDLL.h"BOOL APIENTRY DllMain( HANDLE hModule,                        DWORD  ul_reason_for_call,                        LPVOID lpReserved					 ){    return TRUE;}void HelloWorld(){	MessageBox( NULL, TEXT("Hello World"), TEXT("In a DLL"), MB_OK);}
// File: SampleDLL.h//#ifndef INDLL_H#define INDLL_H#ifdef EXPORTING_DLLextern __declspec(dllexport) void HelloWorld() ;#elseextern __declspec(dllimport) void HelloWorld() ;#endif#endif
Các mã sau đây là một ví dụ về một Win32 Ứng dụng dự án kêu gọi các chức năng DLL xuất khẩu trong các SampleDLL DLL.
// SampleApp.cpp //#include "stdafx.h"#include "sampleDLL.h"int APIENTRY WinMain(HINSTANCE hInstance,                     HINSTANCE hPrevInstance,                     LPSTR     lpCmdLine,                     int       nCmdShow){ 		HelloWorld();	return 0;}
Lưu ý Trong thời gian tải năng động liên kết, bạn phải liên kết SampleDLL.lib chuyển nhập thư viện được tạo ra khi bạn xây dựng SampleDLL dự án.

Trong thời gian chạy năng động liên kết, bạn sử dụng mã số đó là tương tự như mã sau đây để gọi SampleDLL.dll xuất khẩu DLL chức năng.
...typedef VOID (*DLLPROC) (LPTSTR);...HINSTANCE hinstDLL;DLLPROC HelloWorld;BOOL fFreeDLL;hinstDLL = LoadLibrary("sampleDLL.dll");if (hinstDLL != NULL){    HelloWorld = (DLLPROC) GetProcAddress(hinstDLL, "HelloWorld");    if (HelloWorld != NULL)        (HelloWorld);    fFreeDLL = FreeLibrary(hinstDLL);}...
Khi bạn biên dịch và liên kết ứng dụng SampleDLL, các cửa sổ điều hành hệ thống tra cứu cho DLL SampleDLL trong các vị trí sau đây trong Thứ tự này:
  1. mục tin thư thoại ứng dụng
  2. Cặp hiện thời
  3. mục tin thư thoại hệ thống Windows

    Lưu ý Chức năng GetSystemDirectory trả về con đường của các hệ thống Windows mục tin thư thoại.
  4. mục tin thư thoại Windows

    Lưu ý Chức năng GetWindowsDirectory trả về đường dẫn của mục tin thư thoại Windows.

Lắp ráp Khuôn khổ .NET

Với sự ra đời của Microsoft .NET và Khuôn khổ .NET Hầu hết các vấn đề có liên quan đến với dll đã được loại bỏ bởi sử dụng hội đồng. Một hội đồng là một đơn vị hợp lý chức năng chạy dưới sự kiểm soát của .NET phổ biến ngôn ngữ runtime (CLR). Một hội đồng vật lý tồn tại như là một tập tin .dll hoặc là một tập tin .exe. Tuy nhiên, bên trong một lắp ráp là rất khác nhau từ một Microsoft Win32 DLL.

Một hội đồng tập tin chứa một biểu hiện hội, loại siêu dữ liệu, Microsoft trung gian mã ngôn ngữ (MSIL), và các nguồn lực khác. Biểu hiện hội chứa các lắp ráp các siêu dữ liệu mà cung cấp tất cả thông tin là cần thiết cho một lắp ráp để được self-describing. Các thông tin sau đây được bao gồm trong các biểu hiện hội:
  • Lắp ráp tên
  • Thông tin Phiên bản
  • Thông tin văn hóa
  • Thông tin mạnh mẽ tên
  • Bảng lắp ráp các tập tin
  • Loại tài liệu tham khảo thông tin
  • Thông tin tham chiếu và phụ thuộc Hội đồng
Mã MSIL nằm trong hội đồng có thể không trực tiếp thực hiện. Thay vào đó, MSIL mã thực hiện được quản lý thông qua CLR. Bởi mặc định, khi bạn tạo ra một hội đồng, hội đồng là tư nhân để các ứng dụng. Để tạo ra một hội đồng chia sẻ yêu cầu bạn chỉ định một tên mạnh mẽ để lắp ráp và sau đó xuất bản lắp ráp tại hội toàn cầu bộ nhớ cache.

Danh sách sau đây mô tả một số các tính năng của Hội đồng so với các tính năng của Win32 dll:
  • Self-describing
    Khi bạn tạo ra một hội đồng, tất cả các thông tin đó là yêu cầu cho CLR để chạy hội nằm trong biểu hiện lắp ráp. Biểu hiện hội chứa một danh sách các hội đồng phụ thuộc. Do đó, CLR có thể duy trì một thiết lập phù hợp của Hội đồng được sử dụng trong các ứng dụng. Win32 dll, bạn không thể duy trì nhất quán giữa bộ DLL được sử dụng trong một ứng dụng khi bạn sử dụng các dll dùng chung.
  • Versioning
    Trong một biểu hiện lắp ráp, phiên bản thông tin được ghi lại và thi hành bởi CLR. Ngoài ra, phiên bản chính sách cho phép bạn thi hành sử dụng phiên bản cụ thể. Ở Win32 dll, versioning không được thi hành bởi các hệ điều hành. Thay vào đó, bạn phải chắc chắn rằng DLL là lạc hậu tương hợp về sau.
  • Triển khai by-side
    Hội đồng hỗ trợ triển khai by-side. Một ứng dụng có thể sử dụng một phiên bản của một hội đồng, và một ứng dụng có thể sử dụng một khác nhau Phiên bản của một hội đồng. Bắt đầu trong Windows 2000, side-by-side khai hỗ trợ định vị dll trong mục tin thư thoại ứng dụng. Ngoài ra, Windows Bảo vệ tệp của ngăn chặn hệ thống file DLL bị ghi đè hoặc thay thế bằng một Đại lý trái phép.
  • Self-Containment và cô lập
    Một ứng dụng được phát triển bằng cách sử dụng một hội đồng có thể khép kín và bị cô lập từ các ứng dụng khác đang chạy trên các máy tính. Tính năng này giúp bạn tạo số không tác động cài đặt chuyên biệt.
  • Thực hiện
    Một hội đồng chạy theo mức cấp phép bảo mật cung cấp lắp ráp biểu hiện và đó được điều khiển bởi các CLR.
  • Ngôn ngữ độc lập
    Một hội đồng có thể được phát triển bằng cách sử dụng bất kỳ một trong các hỗ trợ ngôn ngữ net. Ví dụ, bạn có thể phát triển một hội đồng trong Microsoft Visual C#, và sau đó sử dụng lắp ráp trong một Microsoft Visual Basic.net dự án.
Tham khảo
Để biết thêm thông tin về các file DLL và Khuôn khổ .NET Hội đồng, ghé thăm Web site sau của Microsoft:
DLL xung đột
http://msdn2.Microsoft.com/en-US/Library/ms811694.aspx

Thành phần by-side thực hiện chia sẻ trong các ứng dụng
http://msdn2.Microsoft.com/en-US/Library/ms811700.aspx

Làm thế nào để xây dựng và bản ghi dịch vụ cô lập ứng dụng và side-by-side hội cho Windows XP
http://msdn2.Microsoft.com/en-US/Library/ms997620.aspx

Đơn giản hóa việc triển khai và giải quyết các DLL xung đột với Khuôn khổ .NET
http://msdn2.Microsoft.com/en-US/netframework/aa497268.aspx

Hướng dẫn của nhà phát triển .NET Framework: Hội đồng
http://msdn2.Microsoft.com/en-US/Library/hk5f40ct (vs.71) .aspx

Thời gian chạy năng động liên kết
http://msdn2.Microsoft.com/en-US/Library/ms685090.aspx

Chủ đề lưu trữ cục bộ
http://msdn2.Microsoft.com/en-US/Library/ms686749.aspx
DLL EXE Win32 DOTNET địa ngục MSIL

Cảnh báo: Bài viết này đã được dịch tự động

Thuộc tính

ID Bài viết: 815065 - Xem lại Lần cuối: 05/20/2013 05:56:00 - Bản sửa đổi: 4.0

  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Server
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Media Center Edition 2005 Update Rollup 2
  • Microsoft Windows XP Tablet PC Edition
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Academic Edition
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Academic Edition
  • Microsoft Visual Studio 6.0 Professional Edition
  • Microsoft Visual Studio 6.0 Enterprise Edition
  • Microsoft Visual Studio 2005 Professional Edition
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Office XP Professional Edition
  • Microsoft Office XP Small Business Edition
  • Microsoft Office XP Standard Edition
  • Microsoft Office Professional Edition 2003
  • Microsoft Office Small Business Edition 2003
  • kbxplatform kbtshoot kbdebug kbdll kbinfo kbmt KB815065 KbMtvi
Phản hồi
"//c.microsoft.com/ms.js'><\/script>");