Visual C中纯资源DLL文件的编写_月色忧人-jjzhang166_百度空间

王冬梅

(河北衡水工业学校 自动化,河北 衡水 053000

[ ]介绍Visual C++中纯资源DLL文件的编写与调用,实现了应用程序不同语言界面的支持和字符串数据的输出,该方法方便可行,实用性强。

[关键词]Visual C++ DLL

中图分类号:TP3   文献标识码:B    文章编号:1002690820070420     

一、引言

动态链接库(Dynamic-Link Library,简写为DLL)是包含了一系列类、函数、变量或其他资源的库文件。它不能单独运行,只能由可执行文件或其他DLL文件调用。在程序中使用DLL的优点是显著的:(1)节省磁盘和内存空间,提高程序执行效率。DLL可以被多个程序同时调用,我们可以把重复使用的功能模块做成DLL文件,对于多任务的Windows操作系统来说这势必会节省磁盘空间和内存的开支。(3)便于多语言开发,模块化设计。DLL的编制与具体的编程和编译器无关,不同语言编定的程序可以共享一个DLL程序,因而,在编写比较复杂的软件时,可由不同的程序员在不同的编程环境下分模块实现。

纯资源DLL就是只包含资源的DLL,其资源可以是字符串、数组、图标、位图、声音、视频或对话框等。

二、用DLL实现程序的不同语言界面

如今,许多软件都支持不同语言的界面,比如:简体中文与繁体中文,简体中文与英文等。如果针对不同语言界面各写一套应用程序,这显然是不现实的。利用纯资源的DLL来实现此功能不失为一种简便有效的方法。下面以在Visual C++中编写支持简体中文与英文界面的程序为例,讲述其实现过程。

(一)纯资源DLL文件的实现

首先,按照简体中文界面完成程序的编写。然后用向导中的Win32 Dynamic—Link Library 建立一个空的DLL工程(取名为ChnRsc)。将所完成的程序的所有资源(包括.rc .rc2 .ico.bmp Resource.h等文件)从程序框架中删除,并将其复制到DLL工程的目录下,进而添加到DLL工程的程序框架中。

接下来,对DLL工程作如下设置:从Project菜单中选Settings,选择Link选项,在Project Options文本框中加入/noentry,或者编写一初始化的 .cpp文件加入DLL工程中:

# include<windows.h>

   extern”C”

BOOL WINAPI DLLMainHINSTANCE hinstanceDWORD dwReasonLPVOID Ip Void

{return TRUE; }

{zh1},编译生成ChnRsc.dll

按照同样的方法新建一空的DLL工程(取名为EngRsc),并将所有资源加入到该工程。并将资源中所有简体中文翻译成英文,{zh1}编译生成EngRsc.dll

(二)纯资源DLL文件的调用

EngRsc.dll ChnRsc.dll拷贝到应用程序目录或系统目录下。在主应用程序类中加入一受保护的HINSTANCE类型的成员变量 m_hDLL,用来保存加载的DLL的句柄。我们可以将用户选择的语言种类保存到注册表或一初始化文件中,程序启动时自动读取并加载相应的语言资源。在initinstance函数中用如下代码实现:

if (nLanguage= =1)//使用简体中文

m_hDLL=LoadLibrary(“ChnRsc.dll”);

else

m_hDLL=LoadLibrary (“EngRsc.dll”);

if (NULL= =m_hDLL)

return FALSE;

else

AfxSetResourceHandle (m_Hdll);

在应用程序退出时要释放加载的资源,所以在ExitInstance中加入如下代码:if (m_hDLL) FreeLibrary (m_hDLL);

这样我们的应用程序就可以支持简体中文和英文两种语言界面了。

三、用DLL输出数据资源

许多应用程序都会用到字符串、数组或声音、视频等资源。如果把资源放入DLL中,需要时由应用程序调用,这样不但可以使主程序变得简洁高效,而且DLL资源可由多个程序同时调用,并且修改或更新资源时不需用对主程序作任何改动。

四、结束语

合理地使用纯资源DLL不仅可以方便地实现某些复杂的功能,还能使应用程序更健壮。笔者通过几个简单实例,对纯资源DLL的编写与应用给予了讨论。希望文中所述方法能起到抛砖引玉的作用,使纯资源DLL的编程在软件开发中发挥更大的作用。

参考文献:

[1]伍良生,王新华Windows下的数据采集和A/D转换[J]计算机工程与设计,20022311):46-47

[2]周振红,冯夏庭等,VB调用VC创建的Win32 DLL函数[J]。计算机工程2002284285-286



郑重声明:资讯 【Visual C中纯资源DLL文件的编写_月色忧人-jjzhang166_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——