M?t DLL là g??

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 815065 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

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_DLL
extern __declspec(dllexport) void HelloWorld() ;
#else
extern __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

Thu?c tính

ID c?a bài: 815065 - L?n xem xét sau cùng: 20 Tháng Năm 2013 - Xem xét l?i: 4.0
Áp d?ng
  • 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
T? khóa: 
kbxplatform kbtshoot kbdebug kbdll kbinfo kbmt KB815065 KbMtvi
Máy d?ch
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

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com