资源描述:
《易语言支持库制作学习笔记》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、易语言支持库制作学习笔记本文讲讲用VS2008制作易语言支持库(动态库和静态库)的具体方法和步骤。这是我学习制作支持库时的操作步骤和学习笔记,贴出来分享下,也方便我以后查询。时间仓促水平有限,不到之处还请各位高手们批评指正,以便完善。本文欢迎转载,但请注明作者和出处。谢谢!易语言支持库制作顺序是先制作动态库(dll)再制作静态库(lib)。I.动态库的制作1.打开VS2008,新建项目MFCDLL,名称mylib,完成2.项目属性,配置里选择所有配置(设置debug和release模式的配置项)项目属性->常规->字符集设置为多字节字符集项目属性->C++选项卡->附加包含目录填
2、入sdk的Elib目录,如我的Elib目录是D:E51sdkcppELib3.编写代码1.打开mylib.cpp文件2.文件头处加入#include#include#include#include3.文件结尾处加入自己的代码1)定义LIB_INFO这段代码是定义模块信息的,只在动态模块中使用,所以加入宏__E_STATIC_LIB来定义。也就是说,如果是静态库那么这段代码就不会被编译。静态库编译的时候只需在项目设置的C++->预处理器中加入__E_STATIC_LIB即可。#ifndef__E
3、_STATIC_LIBstaticLIB_INFOLibInfo={/*{库格式号,GUID串号,主版本号,次版本号,构建版本号,系统主版本号,系统次版本号,核心库主版本号,核心库次版本号,支持库名,支持库语言,支持库描述,支持库状态,作者姓名,邮政编码,通信地址,电话号码,传真号码,电子邮箱,主页地址,其它信息,类型数量,类型指针,类别数量,命令类别,命令总数,命令指针,命令入口,附加功能,功能描述,消息指针,超级模板,模板描述,常量数量,常量指针,外部文件}*/LIB_FORMAT_VER,_T(LIB_GUID_STR),LIB_MajorVersion,LIB_Minor
4、Version,LIB_BuildNumber,LIB_SysMajorVer,LIB_SysMinorVer,LIB_KrnlLibMajorVer,LIB_KrnlLibMinorVer,_T(LIB_NAME_STR),__GBK_LANG_VER,_WT(LIB_DESCRIPTION_STR),_LIB_OS(__OS_WIN),_WT(LIB_Author),_WT(LIB_ZipCode),_WT(LIB_Address),_WT(LIB_Phone),_WT(LIB_Fax),_WT(LIB_Email),_WT(LIB_HomePage),_WT(LIB_Oth
5、er),sizeof(DataTypes)/sizeof(DataTypes[0]),DataTypes,LIB_TYPE_COUNT,_WT(LIB_TYPE_STR),sizeof(Commands)/sizeof(Commands[0]),Commands,ExecuteCommand,NULL,NULL,mylib_ProcessNotifyLib,NULL,NULL,sizeof(Consts)/sizeof(Consts[0]),Consts,NULL};PLIB_INFOWINAPIGetNewInf(){return(&LibInfo);};#endif注意:Ge
6、tNewInf是易语言动态库(dll)唯一必须导出的函数。所以需要在.def文件里定义以下mylib.def里加入EXPORTS;此处可以是显式导出GetNewInf接下来我们看看LIB_INFO是如何定义的。具体含义可以在开发文档里察看。这里根据模块不同,需要修改的地方有1-LIB_这样的变量是我们另外定义的,可以定义在mylib.h中如下:#ifndef__E_STATIC_LIB#defineLIB_GUID_STR"0000000000000000000000000000"/*GUID串:{00000000-0000-0000-0000-00000000},必须使用gui
7、dgen.exe生成*/#defineLIB_MajorVersion1/*库主版本号*/#defineLIB_MinorVersion1/*库次版本号*/#defineLIB_BuildNumber20110318/*构建版本号*/#defineLIB_SysMajorVer3/*系统主版本号*/#defineLIB_SysMinorVer0/*系统次版本号*/#defineLIB_KrnlLibMajorVer3/*核心库主版本号*/#defineLIB_KrnlLibMin