建立后,把它们放到Languages 项目目录中,程序就可以运行了。
建立中文资源链接库的主要步骤如下。
? 选择Regular DLL-based 应用程序并单击“Finish”按钮完成创建。动态链接库项目只
包含资源,不需要其他文件,所以从项目中删除所有其他文件。
? 把Languages 相关的资源文件拷贝到Language_chinese 项目的对应目录下。
? 把Languages.rc 加入到Language_chinese 项目中,使得Languages.rc 为项目中的惟一
文件。
? 在串资源表(String Table)中添加串IDS_HELLO=200,标题为“这是中文版!!”。
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·270·
? 从Project 菜单中选择“Setting…”选项。首先,将输出文件名\Debug\Language_chinese.
dll 改为..\chinese.dll,将动态链接库直接建立在Languages 项目目录下。然后在链接
命令行中添加“/NOENTRY”选项。最后,编译并建立动态链接库。
生成英文版资源文件最快捷的方法是创建一个基于英文版的临时项目,并把资源文件复
制到英文链接库项目中。其处理方法与中文资源链接库类似。
注意:在修改资源组件设置时,不但要将Project 菜单Setting 对话框中Resource 标签的默认文字
改为“英语(美国)”,还要删除预处理定义中的“_AFXDLL”。删除_AFXDLL 预处理器,
可以使用户的链接库包含通用的MFC 资源。否则,应用程序会从系统安装的MFC 动态链
接库中收集通用的MFC 资源,应用程序特定资源会被本地化。
这样,应用程序和动态链接库都成功地建立完毕,Languages 应用程序将根据cāo作系统
的不同版本来决定是加载中文资源还是英文资源。中文/英文版的应用程序运行结果分别如图
10-6 和图10-7 所示。
图10-6 汉化的中文版应用程序界面
图10-7 英文版的应用程序界面
枫叶文学网www.fywxw.com
第10 章 动态链接库
·271·
10.7 使用钩子(Hook)函数
Windows 系统是建立在事件驱动的机制上的,即整个系统都是通过消息的传递来实现的。
而钩子是Windows 系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消
息,然后完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,
截获发往目标窗口的消息并进行处理。这样,就可以在系统中安装自定义的钩子,监视系统
中特定事件的发生,完成特定的功能,比如截获键盘/鼠标的输入、屏幕取词、日志监视等。
可见,利用钩子可以实现许多特殊而有用的功能。因此,对于高级编程人员来说,掌握钩子
的编程方法是很有必要的。
10.7.1 钩子函数的类型
1.按事件类型分