长度。 6、GDI 实现的功能是什么?( 分) 、 实现的功能是什么?( ?(6
答:
GDI 作为 Windows 的重要组成部分,负责管理用户绘图操作时功能的转换。用户通过调用 GDI 函数与设备 打交道, GDI 通过不同设备提供的驱动
程序将绘图语句转换为对应的绘图指令,避免了用户直接对硬件进 行操作。 7、写出静态切分窗口的主要过程。 分) 、写出静态切分窗口的主要过程。 (8 (
答: (1)首先创建一个单
文档应用程序; (2)在框架窗口类的 MainFrm.h 中添加受保护的切分窗口类的数据成员:CSplitterWnd m_wndSplitter (3)使用 MFC ClassWizard 为 MainFrm 类添加 OnCreateClient 函数,并添加代码。主要过程为:首先确定划分窗口的大小, 然后使用 CreateStatic()成员函数进行切分,最后使用 CreateView()函数为每个切分窗口创建视图。
8、简述动态行集与快照集的区别。 分) 、简述动态行集与快照集的区别。 (6 ( 答:(1)快照记录集(Snapshot):相当于数据库的一张静态视图,一旦从数据库中抽取出来,别的用户执行 更新记录操作不会改变原记录集,只有调用 Requery()函数重新
查询数据才能反映数据的变化。但能反映自 身用户的删除和修改操作。 (2)动态记录集(Dynaset) :动态记录集是数据库的动态视图,当别的用户更新记录时,动态记录集能即时 反映所做的修改,
常用于实时处理系统中。 9、应用程序与 DLL 模块建立链接有哪两种方式,每种方式是如何进行链接操作的。 模块建立链接有哪两种方式,每种方式是如何进行链接操作的。 (10 、 ( 分) 答:应用程序导入函数与 DLL 文件中的导出函数进行
链接有两种方式,隐式链接和显式链接(2 分) (1)隐式链接是指在应用程序中不需要指明 DLL 文件的实际存储路径,程序员不需要关心 DLL 文件的实 际装载,而显示连接与此相反。 (2) 采用隐式链接,程序员建立一个 DLL 文件时,连接程序会自动生成一个与之对应的 LIB 导入文件, 该文件包含了每一个 DLL 导出函数的符号名和可选的标识号, 文件作为 DLL 的替代文件被编译到应用程 LIB 序项目中。 执行程序通过 LIB 提供的信息加载 DLL,可执行程序链接到对应的 LIB 导入文件,操作系统在 加载使用可执行程序时加载 DLL。可执行程序直接通过函数名调用 DLL 输出函数。 (3) 显示链接方式对于集成化的开发语言比较适合, 程序员不必再使用导入文件, 而是直接调用 Win32 的 LoadLibrary 函数,并指定 DLL 的路径作为参数即可,该函数返回 HINSTANCE 参数,应用程序在调用 GetProcAddress 函数时使用这一参数,将符号名或标识号转换为 DLL 内部的地址。 10、 设动态链接库 math.dll 中导出了函数 int GetMax(int a,int b); 、 完成下面的程序实现从动态链接中显式调用该函数( 完成下面的程序实现从动态链接中显式调用该函数( 注意注释 )(12 分) 。 // 声明函数指针 void main() { // 加载动态链接库 // 获得函数指针 // 调用函数 // 释放动态链接库 } 答: typedef int (*GET_MAX)(int,int);
2
GET_MAX GetMax; int main(int argc, char* argv[]) { HINSTANCE hDll=LoadLibrary("math.dll"); if(hDll==NULL){ printf("load dll failure\r\n"); return 0; } GetMax=( GET_MAX) GetProcAddress(hDll,"GetMax"); if(GetMax!=NULL) { int max=GetMax(5,3); printf("max(5,3)=%d",max); } FreeLibrary(hDll); } 11、设对话框类 CStudentDialog 中包含 3 个数据成员 设对话框类 class CStudentDialog : public CDialog { public: String m_strName; int m_nAge; double m_fScore; } 写一段程序,创建并调用该模式对话框,并在用户点击“确认 确认”按钮后用消息框显示上述 写一段程序,创建并调用该模式对话框,并在用户点击 确认 按钮后用消息框显示上述 3 个数据成员的 值(12 分) void ShowDialog() { // 在此函数中完成上述功能 } 答: voi