理解MHS(2):强大的扩展能力2

看到脚本中的这些代码:

uses
  SysUtils, Classes,  DB,
  BaseQuery in '..\public\BaseQuery.pp',
  BaseDebug in '..\public\BaseDebug.pp',
  BaseUI in '..\public\BaseUI.pp',
  Variants;


估计会很头疼,总感觉不大符合Pascal的简化思想,比如,正常情况下,上面的代码应该是这样的:

uses
  SysUtils, Classes,  DB,
  BaseQuery, BaseDebug, BaseUI,
  Variants;

 

好了,这次就来说说搜索路径的问题,首先在config.ini中有这么一条,如果没有,请根据自己需要添加,或者参考完整版的config.ini说明(请自行到QQ群中下载):

ScriptSearchPath=c:\temp;d:;e:;

这句话为通用脚本指定了三个搜索路径,路径之间用英文分号分割,这就意味着当使用简化后的代码引用后,MHS将按照如下顺序搜索引用单元:

1.搜索指定目录的引用单元,篇首那个复杂点儿的路径指定就是这种情况。

2.搜索当前执行单元目录,如果存在则优先使用。

3.按照config.ini中指定的ScriptSearchPath的先后顺序搜索引用单元,如果存在则优先使用。

4.经过上述搜索如果没有找到引用单元则直接返回导致编译错误。

有了引用单元的搜索路径,自然可以实现更加强大的功能!

下面是一些注意事项:

1.每个config.ini的配置都是独立的,互不影响,也就是说,每个网站或者说每个运行的MHS实例所具有的搜索路径可以完全不同,也可以根据您的需要自行控制。

2.config.ini中的搜索路径配置是支持相对路径名的,但每个相对路径名都是相对于当前config.ini文件的路径。例如,可以写成这样:

ScriptSearchPath=wwwroot\public;wwwroot\;..\public;

3.如果出现编译错误且是引用单元错误时,请根据上述搜索顺序进行排错。

4.如果在上述搜索顺序中存在同名的脚本单元,可能会出现一些您不希望出现的错误,也请特别注意。

先写到这儿吧,有内容再更新。

0 Comments
因网站受黑客垃圾攻击,留言暂时关闭,如有需要,请自行下载源码参考,谢谢。
留言