CWDG论坛-专业魔兽插件's Archiver

biggates 发表于 2007-8-21 22:26

TOC的文件加载顺序注意事项

下午在调试phRaid2时出现的问题,不断提示某函数无法找到,但是在游戏中用 /print 查看该函数却的确存在,很是恶心。

经过反复推敲,认定是 TOC 文件出的问题。因此进行了小小的实验。

实验证明:TOC中涉及的文件是[b]按照先后顺序[/b]加载的,因此在写TOC的时候,不要简单地按照书写文件的先后顺序/字母顺序来排列文件。

一般来说,库文件(或包含库文件引用的 embeds.xml )应该放在最前面,之后依次放主文件(一般会定义很多全局变量)、定义框体的XML(一般涉及很多全局函数的引用)、设置和多语言部分(一般提供了很多表)、各个子模块(一般会引用到主文件和设置部分的代码),等。

对于确定要放在最早载入的部分,如全局变量定义、全局函数的定义等,可以提取成单独的 .lua  和 .xml ,并放在最前面。当然,也可以单独提取出一个目录,然后在插件的toc中标明 OptionalDeps (作为单独的一个插件处理)。

对于功能差异比较大的文件组,可以用空行和注释加以划分。

炽火 发表于 2007-8-21 23:23

。。。貌似是很浅显的问题。。。

Toc的载入顺序在文件较多的时候尤其需要注意,

另:在这个可动态创建的时代,XML一般用于模板,因此可以放置在第一位,由程序根据需要调用、创建。

laag666 发表于 2007-8-23 13:52

感觉把库文件放到XML里面不是更好,建一个embeds.xml不就可以了?
加载时先embeds.xml后主文件不就了事,试了试,先主文件好象也不会出错

biggates 发表于 2007-8-23 17:55

先加载主文件的话,如果插件在很早就被载入,而此时相应的库文件并没有载入,就会发生错误。常见的某些插件如 FuBar ,如果没有设置 OptionalDeps ,那么就会优先于一些库加载,造成出错。

月色狼影 发表于 2007-8-24 23:42

在xml中写入 加载顺序也是要注意的
加载顺序还有一个体现在 每个人的电脑性能 以及WOW加载速度上

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.