① 什么是设备环境句柄hdc什么是图形设备接口gdi
设备环境句柄hdc简单说是界面各元素的编号,是一个32位整型值。
图形设备接口(GDI :Graphics Device Interface),它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。
② 请问MFC中的DC、CDC、HDC、句柄、设备上下文究竟是什么意思 希望能解答详细一点点 谢谢了
都是什么回答啊 ...
楼主 你没有了解MFC的运行机制就去看他写他所以你先要了解他的机制 已经各个CPP .H都是什么
下面我就给你说下
在MFC程序中,我们并不经常直接调用Windows API,而是从MFC类创建对象并调用属于这些对象的成员函数.也就是说MFC封装了Windows API 你说你喜欢C++而MFC换一种说法就是一个用C++写的一个函数库 然后你来调用 只不过这个类不是你写的
MFC提供数百个类,最重要的、也是编写任何VC++应用程序都必不可少的两个类CWinApp和CFrameWnd,这两个类是编写复杂庞大应用程序的基石。
1>封装特性:构成MFC框架的是MFC类库而MFC类库又是C++的一个类库。这些类封装WIN32应用程序编程接口,OLE(Object Link Embed 对象链接嵌入)特性,ODBC和DAO数据访问的功能。
2>继承特性:MFC抽象出了众多类的共同特性,并设计出一些基类作为实现其他类的基础,这些类中最重要的类是CObject类和CCmdTarget类,程序员可以从适当的MFC类中派生出自己的类,实现特定的功能达到编程的目的。
3>虚拟和消息映射:MFC是以C++为基础,当然支持虚函数,但作为一个编程框架必须要解决的是效率问题:如果MFC仅仅通过虚函数来支持动态约束必然会产生大量的虚函数表这样编程框架过于臃肿而且消耗更多的内存。但是MFC建立了消息映射机制这样降低了内存的使用却大大提高了效率
消息映射是一个将消息和成员函数相互关联的表,当应用程序的框架窗口接收到一个消息时,MFC将搜索该窗口的消息映射,如果存在一个处理消息的处理程序,那么就调用该处理程序.
它通过宏来实现消息到成员函数的映射,而且这些函数不必是虚拟的成员函数,这样不需要为消息映射函数生成一个很大的虚拟函数表(V表),节省内存。
MFC消息映射机制:
将消息与消息处理函数联系起来,形成一一对应的机制。
消息映射宏
声明: DECLARE_MESSAGE_MAP
定义:
BEGIN_MESSAGE_MAP
ON_COMMAND
ON_CONTROL
ON_MESSAGE
END_MESSAGE_MAP
MFC主要组成部分:类、宏和全局函数。
类是MFC中最主要的内容。MFC类是以层次结构方式组织起来的。MFC中的类分成两部分,除了一些辅助类,大多数的MFC类是直接或间接从根类CObject派生而来。
MFC宏主要功能:消息映射、运行时对象类型服务、诊断服务、异常处理。
MFC约定:全局函数以“Afx”为前缀,全局变量以“afx”为前缀
MFC类的层次关系
CObject项目类)->CCmdTarget(消息响应类)->
{
CWinThread(线程类)->CWinApp(Window应用程序类)
CDocument(文档类)
CWnd(窗体类)->[
CFrameWnd(框架类)
CView(视图类)
]
}
CObject类由于MFC中大部分类是从CObject类继承而来的,CObject类描述了几乎所有的MFC类的一些公共特性,CObject类为程序员提供了对象诊断、运行时类型识别和序列化等功能。
CCmdTarget类由CObject类直接派生而来,它负责将消息发送到能够响应这些消息的对象。它是所有能进行消息映射的MFC类的基类。
CWinApp类在任何MFC应用程序中有且仅有一个CWinApp派生类的对象,它代表了程序中运行的主线程,也代表了应用程序本身。 CWinApp类取代了WinMain()主函数在SDK应用程序中的地位。传统SDK应用程序WinMain()函数完成的工作。现在由类CWinApp的InitApplication(),InitInstance()和Run()三个成员函数承担。
CWnd类由CCmdTarget类直接派生而来,该类及其派生类的实例是一个窗口。CWnd类代表了MFC中最基本的GUI对象,它是一个功能最完善、成员函数最多的MFC类。
CFrameWnd类是CWnd类的派生类,主要用来掌管一个窗口,它取代了SDK应用程序中窗口函数WndProc()的地位。CFrameWnd类的对象是一个框架窗口,包括边框、标题栏、菜单、最大化按钮、最小化按钮和一个激活的视图。
CDocument类在应用程序中作为用户文档类的基类,它代表了用户存储或打开的一个文件。
CView类是MFC中一个很基本的类,它作为其它MFC视图类和用户视图派生类的基类。
从API编程到MFC编程的过渡:
WinMain()
{ 初始化WNDCLASS
注册窗体结构
创建窗口 ->>>>>>>>应用程序类CWinApp
显示窗口
消息循环
}
WndProc()
{ switch(…)
->>>>>>>>>框架窗口类CFrameWnd
}
MFC Object和Windows Object的对应关系:
描述 Windows句柄 MFC Object
窗口 HWND CWnd
设备上下文 HDC CDC
菜单 HMENU CMenu
笔 HPEN CPen
刷子 HBRUSH CBrush
字体 HFONT CFont
位图 HBITMAP CBitmap
套接字 SOCKET CSocket
三、手工创建一个MFC应用程序:
注意:创建MFC程序,要创建一个Win32空项目,并要选择项目属性中的”在共享DLL文件中使用MFC,然后新建我们的文件
例子:在”hello.h”头文件中添写如下代码:
class CMyApp:public CWinApp
{
public:
virtual BOOL InitInstance();//虚函数
};
class CMainWindow:public CFrameWnd
{
public:
CMainWindow();
protected:
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP();//声明消息映射
};
在”hello.cpp”源文件中添写如下代码:
#include <afxwin.h>
#include “hello.h"
CMyApp myApp;
BOOL CMyApp::InitInstance()
{
m_pMainWnd = new CMainWindow;
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
BEGIN_MESSAGE_MAP(CMainWindow,CFrameWnd)
ON_WM_PAINT()
END_MESSAGE_MAP() //消息映射
CMainWindow::CMainWindow() //构造函数初始化
{
Create(NULL,“我的第一个MFC应用程序”);//创建窗体
}
void CMainWindow::OnPaint()
{ CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
dc.DrawText("Hello MFC",-1,&rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER);
}
CWinApp是应用程序类,在MFC应用程序中必须从这个类派生出一个类,该派生类是MFC应用程序的入口
必须定义这个派生类的对象,并且只能有一个这个对象代表整个应用程序。
成员函数:InitInstance()
功能:初始化应用程序实例和窗口实例,
虚函数CWinApp::InitInstance必须在派生类中重写。在InitInstance函数中,编写初始化代码,如:
创建一个窗口
显示一个窗口
CFrameWnd类
作用:为应用程序提供一个窗口,同时实现消息处理功能。
成员函数: Create()
功能:创建窗体,将之赋于CFrameWnd对象上。
BOOL Create(窗口类型, 窗口标题,显示风格,显示区域,符窗口句柄,菜单,扩展显示风格,上下文对象)共有8个参数,前两个必须给出,后6个可以默认。
MFC应用程序的核心就是基于CWinApp类的应用程序对象,CWinApp提供了消息循环来检索消息并将消息调度给应用程序的窗口.我们在编写MFC应用程序时,要包含afxwin.h,
一个MFC应用程序可以有且仅有一个应用程序对象,对象必须声明为在全局范围内有效(也就是全局对象),以便它在程序开始时即在内存中被实例化
我们的Hello MFC的应用程序类被命名为CMyApp,它在hello.cpp中用如下语句进行了实例化:
CMyApp myApp;
CMyApp的类声明在hello.h中代码如下:
class CMyApp:public CWinApp
{
public:
virtual BOOL InitInstance();
};
CMyApp没有声明任何的数据成员,只是重写了一个从CWinApp类中继承来的函数,在应用程序的生存期内InitInstance的调用比较早,是在应用程序开始运行以后而窗口创建之前,除非InitIstance创建一个窗口,否则应用程序是不会有窗口,这正是为什么即使最小的MFC应用程序也必须从CWinApp派生出一个类并重写CWinApp::InitIstance的原因
InitInstance函数:CWinApp::InitInstance是一个虚函数,其默认操作仅包含一条语句:return TRUE;
InitInstance是用来执行程序每次开始时都需要进行的初始化工作最好的地方
在hello.cpp中,CMyApp的InitInstance通过实例化hello的CMainWindow类来创建hello窗口,语句:
m_pMainWnd = new CMainWindow;
构造了一个CMainWindow对象指针,并将其地址复制到了应用程序对象的m_pMainWnd数据成员中,窗口创建以后,InitInstance就会通过CMainWindow指针调用ShowWindow和UpdateWindow函数显示它:
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
ShowWindow和UpdateWindow是所有窗口对象共用的CWnd成员函数其中包括CFrameWnd类的对象,CMainWindow就是从CFrameWnd派生出来的.
要从MFC程序调用一个常规的Windows API函数,需要在函数名称前添加一个全局运算符:: 例如:::UpdateWindow();
通过生成窗口对象并调用其Create函数,MFC应用程序可以创建一个窗口,在CMyApp::InitInstance中,hello创建了一个CMainWindow对象,CMainWindow的构造函数生成在屏幕上看到的窗口:
Create(NULL,”我的第一个MFC应用程序”);
CPaintDC dc(this);
MFC的CPaintDC类是从MFC的CDC类派生的,CDC类封装了Windows设备环境,以及包含了绘制到屏幕、打印机和其他设备的几十个成员函数
在MFC中如何处理消息呢?
在SDK中我们利用的是消息循环和窗口过程函数对消息进行消息处理.
在MFC中我们用的是消息映射机制.
下面是将消息映射添加到一个类中需要做的全部工作.
1>通过将DECLARE_MESSAGE_MAP语句添加到类声明中,声明消息映射.
2>通过放置标识消息的宏来执行消息映射,相应的类将在对BEGIN_MESSAGE_MAP和END_MESSAGE_MAP的调用之间处理消息
3>添加成员函数来处理消息
1、构造CWinApp派生类的对象
2、系统调用WinMain()
3、WinMain调用InitInstance,在该函数中创建CFrameWnd派生类对象,调用Create函数创建窗口、调用ShowWindow函数显示窗口。
4、之后内部机制调用Run,接受用户的消息,并将消息导向默认的处理函数。当接收到WM_QUIT消息时,Run内部调用ExitInstance,退出程序。
MFC采用消息映射(Message Map)机制取代C/C++语言中的switch-case结构来处理消息。
消息映射:在MFC中把消息处理函数和它所要处理的特定的消息连接起来的一种机制。
它通过宏来实现消息到成员函数的映射,而且这些函数不必是虚拟的成员函数,这样不需要为消息映射函数生成一个很大的虚拟函数表(V表),节省内存。
MFC消息映射机制包括一组消息映射宏。一条消息映射宏把一个Windows消息和其消息处理函数联结起来。
MFC应用程序框架提供了消息映射功能。
在类的实现源文件中用BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()宏来定义消息映射。
在类定义的结尾用DECLARE_MESSAGE_MAP()宏来声明使用消息映射。
Hello的CmainWindow类只处理一种消息类型—WM_PAINT,因此其消息映射的实现如下所示:
BEGIN_MESSAGE_MAP(CMainWindow,CFrameWnd);
ON_WM_PAINT()
END_MESSAGE_MAP()
BEGIN_MESSAGE_MAP开始了消息映射,并标识了消息映射所属的类和该类的基类
END_MESSAGE_MAP()结束消息映射.
ON_WM_PAINT()在BEGIN_MESSAGE_MAP和END_MESSAGE_MAP()之间,称做消息条目,在MFC为100多种Window消息提供了宏.
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP()
afx_msg 醒目地暗示OnPaint是一个消息处理程序,
DECLARE_MESSAGE_MAP()声明消息映射
MFC把消息主要分为三大类:
(1)、标准Windows消息(WM_XXX)
使用宏:ON_WM_XXX() 特点:有默认的消息处理函数
(2)、命令消息:(WM_COMMAND)
来自于菜单、工具条、按钮等的消息
使用宏: ON_COMMAND(命令按钮标识符ID,消息处理函数)
特点:由用户指定消息处理函数
3、”Notification消息” (通知消息) 由控件产生:
BOOL 布尔值,取值为TRUE或者FALSE
BSTR 32为字符指针
BYTE 8位整数无符号的
COLORREF 32位数值代表一个颜色值
DWORD 32位整数无符号的
LONG 32位整数带符号的
LPCTSTR 32位指针,指向一个常字符串
LPVOID 32位指针,指向一个为指定类型的数据
MFC特有的数据类型:
1>POSITION :一个数值,代表数组或者链表中元素的位置,在MFC中常用于数据处理类
2>LPRECT:32位指针,指向一个不变的矩形区域结构
这是我针对你的问题整理的一些资料 很多 我想删减一些 但我觉得这些都对你很重要
③ 什么是DC商品及非DC商品
超市商品DC应该是数码商品。
DC
abbr.
1. = Department of Commerce (美国)商务部
2. = Defense Council 国防委员会
3. = District of Columbia 哥伦比亚特区 (美国联邦政府所在地, 常用 Washington, D.C.)
4. = direct current 【电】直流电 (亦作 dc)
5. = Data Center 资料中心, 数据中心
6. = Data Communication 数字通讯
dc
abbr.
1. =data collection 数据收集
2. =dead center 死点
3. =deck cargo 甲板货物
4. =deviation clause 绕航条款,变更航程条款
5. =digital computer 数字电脑
6. =direct credit 直接贷款
7. =direct current 直流(电)
8. =directional coupler 定向耦合器
9. =down center 从中心往下的
④ GDI 绘图时怎样用当前背景填充内存DC
跟屏幕刷新率关系不大
1
是没处理好消息
窗口绘制 是先 清除背景,在绘制前景
你响应 WM_ERASEBKGND,直接返回1试试一定可以,不行请参见如下2
2.
跟其它窗口有交叉区域的存在,你Swap的时候影响了其它窗口,它绘制的过程反过来又影响你绘制的窗口重新刷新,导致闪烁。这样可通过定义裁减区域来实现,或者照1做,
看MSDN上CDC类的裁减区方面的几个函数就行了。
⑤ dc接口是什么
就是DC插座.
DC插座是一种与电脑显示器专用电源相配的插座,它是由横向插口、纵向插口、绝缘基座、叉型接触弹片、定向键槽组成,两只叉型接触弹片定位在基座中心部位,成纵横向排列互不相连。叉型接触弹片一端为接线口,外露在基座圆柱体顶面,供连接输入电源软线或软缆用,叉型接触弹片另一端由基体互连的两只弹性臂组成,设置在DC插头插入方向绝缘基座插孔内,供给电脑显示器之用,使之正常工作。

(5)gdi设备场镜dc是什么扩展阅读:
DC插座技术指标
接触电阻:Contact Resistance ≤0.03mmΩ
额定负荷:Rated Load 30V DC 0.5A
绝缘电阻:Insulation Resistance ≥100MΩ
插拔力:Insertion and Extraction Force 3N~30N
耐压:Withstand Voltage 500V,AC/min 电器寿命:Life 5000次
温度范围:Temperature -40~+70℃
⑥ DC事件是什么
DC——device context
设备描述环境,这里的设备指计算机的输出设备,比如显示器,打印机等。
计算机在输出时要先获取设备的环境,以建立正确的输出规则,进行输出。
至于DC事件,大概就是针对这个设备环境的事件吧
⑦ dc调光是什么
DC调光是一种调节屏幕亮度的方式,手机等便携设备都拥有光线传感器,可以在感知当前环境亮度的情况下自动调节屏幕的亮度,而DC调光就是通过提高或降低屏幕面板电路功率的方式来改变屏幕的亮度,由于功率等于电压*电流,因此只需改变电压或电流都能够改变屏幕亮度。

(7)gdi设备场镜dc是什么扩展阅读:
由于有不少屏幕驱动芯片并不对外开放,手机厂商想要实现低亮度的DC调光只能够通过类DC调光的方式;包括OPPO在内已经有多家国内的厂商开始使用类DC调光,既能够减少用户由于低频PWM调光而出现的疲劳感,也解决了色彩失准等显示问题。
类DC调光是通过有规律的电亮、熄灭屏幕,并调节其持续时间来实现亮度的变化;由于亮、灭的交替速度快,人眼有视觉残留很难察觉到这个过程,会认为手机屏幕一直在亮。
⑧ DC什么是大小光圈
最佳答案
关于光圈(F)
F后面的数值越小,光圈越大。光圈的作用在于决定镜头的进光量,光圈值越大,进光量越多;反之,则越小。简单的说就是,在快门不变的情况下,光圈越大,进光量越多,画面比较亮;光圈越小,画面比较暗。
光圈和快门是控制摄影时光线量的两大工具光圈指得是镜头中间开孔的大小,控制着胶卷或CCD曝光时光线的亮度。光圈其实就是依据人的眼睛瞳孔架构来设计调整光线多寡,端得是一圈薄且重叠的金属叶片组成,叶片开口构成一圆圈,放大或关小可以控制入光量。
f光圈的单位
光圈的大小是由它的光圈值(f- number)来定义。大凡所有的镜头都有这个光圈级数,在相机的规格表中,厂商通常会提供两个光圈数值(见附图红框部分)。这两个数据,一前一后表白的是相机镜头的最大光圈的值,两组数据一组是指在『广角端』时光圈,例如F2.6,另一组则是在望远程时,例如:左图的规格表中之数字相机是3X光学变焦,那在3X光学变焦端时,最大光圈就不是F2.6,而是F4.7。这个数字也同样说明,这部相机在变焦的过程中,最大光圈变化的范围。
不论数字相机或是傻瓜相机,现今的光圈表示法,还是沿袭传统的作法。标准的光圈级数为:f/1,f/1.4,f/2,f/2.8,f/4,f/5.6,f/8,f/11,f/16,f/22,f/32,f/45,f/64。f/1是最大的光圈值,上面的数列中,相邻的光圈级数,之后的级数是前面级数光量的一半。例如:一个镜头光圈设定于f/4,它让光线进入的量,是光圈设定于f/2.8光量的一半;或只是光圈设定于f/2光量的四分之一。
光圈的公式
光圈的数字表示,说来透得玄妙,竟是数字越大者光圈越小。其实光圈的大小,是可以用公式来表示,见加粗黑体字如下:
光圈值(F Number)=镜头焦距(mm)/光圈口径(mm)
我们以50mm标准镜头为例,假若其的最大光圈口径(也就是光圈叶片的开口,不是镜头的口径)是36mm,那么镜头的最大光圈值便等于f/1.4(50 / 36 = 1.4)。也这因为口径的大小受限制,所以最大光圈值也有其极限,目前135传统相机之标准镜头50mm之最大光圈为f/1.0,而数字相机则是以Olympus C-5050Z系列的f/1.8最大,其次的为专业级数位相机f/2.0光圈。一般光圈f/5.6以下,被称为大光圈;光圈f8以上,被称为小光圈。光圈愈小、景深范围愈广,画面愈清晰;光圈愈大、景深愈浅,画面愈模糊。我们会在下面另作景深的讨论。
光圈的价值
光圈大小的变化,不仅可以改变透光量,还可以控制景深。特别是景深的要求在人像拍摄中特别被强调。由于光圈孔径的最大直径主要受到镜头的镜片大小影响,也因此如要造大光圈,在标准规格下镜片就必须加大,镜片加大,连带着成本和制造费用就愈昂贵。在传统相机的世界中,光圈大上一级得,往往价格也会成等比级数升高。所以没有一支现世镜头,在制造时能拥有所有的光圈。一般用途的35mm相机镜头,光圈大多从f/1.4到f/22,大型相机(4X5)的专用镜头,才有光圈小到f/64,但却也限制其光圈最大值只能到f/5.6。
光圈与景深
将相机的光圈开大就可以加快快门速度,在昏暗的室内光线下很好用。大光圈可以让你,不用三脚架也能拍出稳定的照片。其次使用越小的光圈口径,景物前后清楚的范围也就越深,这也是景深的定义之一。
拍摄时使用大的光圈,照片结果显示出相当浅的景深,前景是清楚的,而后面的景物则是模糊失焦。假如,使用小光圈拍摄,会拍摄出不同感觉的照片,以小光圈拍摄的结果,镜头对焦在中间,可以看到深长的景深,前景和后景都足以让所有的人都看得清楚。
光圈与快门的搭配(A光圈先决模式)
快门速度和光圈都会影响进入相机内的光量。要拍摄到一张正确曝光的照片(看起来既不会太亮也不会太暗),就必须让正确的光量到达底片或CCD。光圈及快门的组合,可以帮你成功的控制光线。相对的光圈和快门也可以达到平衡,两者成反比的关系只要改变其中一方的设定,另一方就需反向调整。因此,如果你用较快的快门远度,就要塔配较大的光圈设定,或使用较慢的快门速度,可搭配使用较小的光圈值。尽管两者交互配合可以达到入光亮的平衡,但快门速度决定着移动中主体的清晰度,相当于横向的清晰;而光圈则决定景深范围,相当于纵向的清楚范围。
许多摄影爱好者,偏好光圈景深来调整自己照片的调性。这种以光圈大小定义拍摄主体,也就是俗称的『A』光圈先决模式。简单的说,就是设定光圈例如f/5.6,半按快门由机身取得曝光快门值之后拍照。在这种情况下,要比纯手动去调整,以致于误了光圈和快门速度,导致,曝光过度(照片全白,没有层次),或曝光不足,导致照片全黑,损失暗部细节,要强得多。虽然,光圈越小,光线越集中,越容易清晰成像景深。不过,光圈过小时,会出现衍射,反而模糊(例如:自制的针孔照相机,如果孔太小,则什么也看不清楚)。
⑨ 请问一般的高压设备上标有-DC和AC分别表示什么意思
AC表示接交流点源,DC表示直流电源。
⑩ 网络设备中的DC和备用DC是指什么
DC domian control 域控的意思 BDC back-up domian control 是给DC 起到一个备份的作用 假如DC 坏了 不至于 整个域到瘫痪了! 转载!!! 一、认识Windows 的域 一台Windows 计算机,它要么隶属于工作组,要么隶属于域。所以说到域,我们就不得不提一下工作组,工作组是MS 的概念,一般的普遍称谓是对等网。工作组通常是一个由不多于10 台计算机组成的逻辑集合,如果要管理更多的计算机,MS 推荐你使用域的模式进行集中管理,这样的管理更有效。你可以使用域、活动目录、组策略等等各种功能,使你网络管理的工作量达到最小。当然这里的10 台只是一个参考值,11 台甚至20 台,如果你不想进行集中的管理,那么你仍然可以使用工作组模式。工作组的特点就是实现简单,不需要域控制器DC,每台计算机自己管理自己,适用于距离很近 的有限数目的计算机。另外工作组名并没有太多的实际意义,只是在网上邻居的列表中实现一个分组而已;再就是对于“计算机浏览服务”,每一个工作组中,会自 动推选出一个主浏览器,负责维护本工作组所有计算机的NetBIOS 名称列表。用户可以使用默认的workgroup,也可以任意起个名字,同一工作组或不同工作组在访问时也没有什么分别。域(Domain)是一个共用 “目录服务数据库”的计算机和用户的集合,实现起来要复杂一些,至少需要一台计算机安装NT/2000/03 Server 版本使其充当DC,来实现集中式的管理。若考虑到容错的话,至少需要两台。对于NT4 域就是一台PDC(具有唯一性),一至多台BDC,对于2000/03 域,已经没有PDC 和BDC 的概念,要容错就需要两至多台DC。域是逻辑分组,与网络的物理拓扑无关,可以很小,比如只有一台DC;也可以很大,包括遍布世界各地的计算机,比如大型 跨国公司网络上的域(当然实际中他们多采用多域结构,还可以利用AD 站点来优化AD 复制)。这个“目录服务数据库”,在NT4 时,保存用户帐号名称和密码等安全安全信息,以及安全规则设置,又被称作安全帐号管理(SAM)数据库,简称SAM 库。在非DC 上的本地的SAM库与DC 上域所用的SAM 库类似,只不过对于NT4 域的SAM 库文件,保存有整个域的用户和计算机,用“域用户管理器”和“服务器管理器”来管理,本地的SAM 库文件,保存有本地机的用户,由“用户管理器”来管理。 从2000 开始,MS 引入了活动目录AD,DC 通过AD 来提供目录的服务,例如它负责维护AD 数据库、审核用户的账户和密码是否正确、将AD 数据库复制到其它的DC 等。AD 库的核心文件就是winnt\ntds\ntds.dit 文件。注意组策略的具体设置值,并不存在这个文件中,而是保存在winnt\sysvol\sysvol 这个共享夹下,用于向其它DC 复制,传播给域成员,来生效。但需要说明的是:2000/XP/03 的非DC 域成员计算机上仍使用和NT4 一样的SAM 库文件来保存本地帐号。正是由于所有域成员计算机和域用户都共用这个域的“目录服务数据库”,域管理员就可以基于域的“目录服务数据库”来进行集中管理、 共享资源,如用户、组、计算机帐号、权限设置、组策略设置等等。目录服务为管理员提供从网络上任何一个计算机上查看和管理用户和网络资源的能力。目录服务 也为用户提供唯一的用户名和密码,用户只需一次登录,即可访问本域或有信任关系的其它域上的所有资源(当然用户得