PerlRegEx正则编译不带pcrelib.dll的方法

tperlregex 是比较不错的正则表达式控件,代码规范而性能一般,说明没有进行优化处理,作为免费控件还是不错的。

tperlregex 可以有两种方式在 delphi7 中使用:

1、作为控件安装到ide 中,这种方式只能使用pcrelib.dll 动态库,且在xp 系统中必须有pcrelib.dll 库的路径;

2、不用安装控件的方式,在单元中直接调用perlregex.pas 文件。这种方式即可以链接使用pcrelib.dll---默认,也可以使用静态pcre 的方式,即把pcre 大量已经用C builder 6 编译好的obj 文件编译链接到程序代码中,不再需要另外的动态库了。

说明一下静态编链pcre obj 的方式:

下载tperlregex 压缩包中,已经包括作者编译过的pcre obj文件了,大约有20个,最新的tperlregex 已经支持7.9 版的pcre,这些obj 文件都在pcre 目录下。

修改pcre.pas,在文件头{$DEFINE PCRE_LINKDLL}后面,添加上下面几句:

{$IFDEF PCRE_STATICLINK}
  {$UNDEF PCRE_LINKDLL}
{$ENDIF}



作用就是,如果用户在delphi 工程中自定义 PCRE_STATICLINK,那么就让编译器静态编链perlregex.pas 单元,编链时把所有pcre 目录下的obj 文件编链进工程代码中。如果用户没有自定义 PCRE_STATICLINK,则仍旧是使用动态库方式,不编链pcre 的obj 对象。

在delphi 工程中自定义编译指令的方法是:在project options->directories/conditionals->conditionals 中添加上PCRE_STATICLINK。

posted on 2010-08-19 14:28  Lojon  阅读(1014)  评论(2编辑  收藏  举报

导航