如何用Delphi开发易语言支持库?
三年多之前(2003年5月),在易语言3.0的C/C++版支持库开发框架公布不久, 我(liigo)在第一时间将其转换为Pascal版,并推出第一个用Delphi编写的易语言支持库,同时公开所有源代码,且不保留任何版权。
时间过的真快。
易语言3.7开始,易语言官方内部使用的支持库开发框架升级为第二版,一直使用至今。不知官方出于哪方面考虑,这一版本的支持库开发框架从未公开发布。当然也有少数网友私下联系易语言公司,如愿获取了相关的开发资料。我目前手中也有一份,并且也两年之前将已经将其转换为Pascal语言版,但是一直没有发布。当然不能发布,官方的C/C++版都尚为公开发布,我怎能私下发布呢?
从那之后,我偶尔也帮易友写过简单的个人专用的支持库,也都是在第一版的Pascal版易语言支持库开发框架的基础上修改。除此之外,我很少用Delphi写易语言支持库,而且因为工作的关系,我用Delphi的机会也很少了。
直到昨天,有易友“E菜鸟哦”问我,能不能用Delphi开发带有“数据类型”的易语言支持库(我之前写的第一个Delphi支持库中只有命令和常量,没有数据类型)。我想了想,认为应该是可以的,但也不确信(因为很久没有接触,快忘光了),让他试一试,研究研究。他说他是Delphi新手(应该是谦虚吧),也不会C/C++,坚持求我写一个带有数据类型的支持库的例子,他急用。而我也正好有意研究一下,就答应帮他试一把。从晚上18点开始到24点结束,搞了整整6个小时,总算搞定了。我一开始没有预见到需要花费这么多时间,否则也不会决定去做;但是做到中间却又放弃,也不是我的风格。总之结果还是比较满意的,写出一个比较完整的支持库的例子,数据类型,方法,成员,都有了,注释也比较详细。趁这个机会,也修改了前一版中的一些错误和疏漏。
第一版的支持库开发框架是有一些遗憾的,就是没有构造函数、析构函数的概念,也不能隐藏成员。但是我昨天晚上写的这个支持库,数据类型是有构造函数和析构函数的,也有隐藏的成员。这是因为我有意从第二版的支持库开发框架中借鉴了部分标志位(即注释中注明有“一般人我不告诉他”的三处)。
希望在这个支持库的源代码放出来之后,会有更多的易友用Delphi写出更多更好的易语言支持库。谢谢。
再次说明,用Delphi不能编写带有可视控件的易语言支持库,这是因为要编写易语言可视控件必须使用MFC。
Delphi易语言支持库源代码下载:elib1_2_src.zip(82K),在线浏览源代码:Unit1.pas,elibTypes.pas。
by liigo, 2006/10/27
本文地址:http://www.45fan.com/a/question/68371.html