系统处理 0000程序调试 0000其他 0000附加 祝您一帆风顺,心想事成! http://dywt.com.cn service@dywt.com.cn +86(0411)88995834 +86(0411)88995831 辽宁省大连市中山区人民路55号亚太国际金融中心 116001 大有吴涛易语言软件开发有限公司 本支持库提供部分相对特殊的命令,供易语言高级用户使用。 特殊功能支持库 A512548E76954B6E92C21055517615B0 This is a runtime library file for EPL applications. The EPL is a software development environment. For details please visit www.dywt.com.cn/info 本命令用于获取“取文本”命令所使用的各项属性设置,结果将存入相应的参数变量中。 GetText_Get 取文本_属性读取 本命令用于设置“取文本”命令所使用的各项属性值。对于这些属性,系统都有默认的初始值(详见本命令的参数说明),故一般情况下无需调用此命令。所有文本属性值均不允许超过10个字符(或5个汉字),否则将导致设置失败且返回“假”。通过本命令所设置的属性值将一直有效,直至程序结束或下一次调用本命令修改了此修改值。 GetText_Set 取文本_属性设置 本命令有多项功能:将任意基本数据类型的参数或数组参数转换为文本;文本中包含引号("、“、”)和换行符等情况下的简捷处理方案;提供类似于C/C++语言中sprintf()的格式化文本功能。
示例:取文本 (“<a href=`www.dywt.com.cn`>~%s~</a>诞生于%d年秋。”, “易语言”, 2000)
等效于:“<a href=” + #引号 + “www.dywt.com.cn” + #引号 + “>” + #左引号 + “易语言” + #右引号 + “</a>诞生于” + 到文本 (2000) + “年秋。”
都将生成文本:“<a href="www.dywt.com.cn">“易语言”</a>诞生于2000年秋。”
但很明显,前者比后者简捷明了很多,且输入代码时更加方便直观。后者因为 #引号、#左引号、#右引号 等常量以及加号(“+”)的使用,导致代码分散且混乱,不易输入和阅读。 GetText 取文本 具体的功能号及其所对应的参数值和返回值,请参考易语言支持库开发手册。 ESysFunction 调用易系统功能 释放由“申请内存”所获取的内存区域。内存区域被释放后,不允许再进行读写操作。 FreeMem 释放内存 向易语言运行时系统申请指定大小的内存区域。执行成功返回申请到的内存首地址,失败返回0。由本命令申请的内存必须通过“释放内存”命令释放。 AllocMem 申请内存 本命令被执行时,在内部启动一个计时器,然后立刻返回(以便易语言继续执行后面的程序代码),当计时时间到时才调用参数所指定的子程序。如上所述,本命令不会阻塞易语言程序的运行。请注意不要在本命令已调用但相应子程序尚未执行这一段时间内再次调用本命令(将直接返回“假”)。本命令的第四个参数“返回值”目前不予使用。 DelayCallFunction 推迟调用子程序 延迟一段时间,然后继续执行后面的程序代码。与易语言核心支持库中的“延时()”命令不同的是,本命令在等待期间允许用户进行其它操作(如点击按钮等)。 Delay 延迟 以stdcall方式(即WINAPI或Pascal)调用指定的子程序(子程序指针,或子程序地址)并取回被调用子程序的返回值,支持任意多个参数,参数支持除字节集之外的其它所有基本数据类型。调用子程序之前,您需要明确地知道它的参数类型和参数个数,以及返回值类型。本命令返回“真”仅表示调用过程中没有出异常情况,并不表示被调用的子程序执行成功。 CallFunction 调用子程序 类似于易语言核心库中的“检查()”命令,本命令在调试版中验证参数值(或其计算结果)是否为“零值”,如果是“零值”则易程序的执行将被暂停且警示(相当于设置了条件断点)。与“检查()”命令不同的是,本命令在运行版中仅仅忽略“检查”这个步骤,但不会放弃执行参数语句(这在参数为命令/方法调用或子语句的情况下尤为重要);此外,本命令可以检查任意基本类型的参数,且可以同时检查多个参数。如果提供了多个参数,所有的参数都会被验证,但只要出现一个“零值”,程序就会被暂停且警示。“零值”定义:字节型/短整数型/整数型/长整数型值等于0,小数型/双精度小数型绝对值小于0.00001,逻辑型值为“假”,文本型/字节集型数据长度等于0,数组成员数等于0,日期时间值为“1899/12/30 00:00:00”,子程序指针的执行地址为0。注:目前暂不支持“子语句类型”的参数。 Verify 验证 类似于易语言核心库中的“输出调试文本()”命令,向输出面板输出一行调试文本。本命令可接受任意多个通用型(任意基本类型)参数及数组。与“输出调试文本()”不同,本命令的所有参数数据仅输出为一行文本(各参数之间以“ | ”间隔)——既保持了数据相关性,又有效利用了输出面板的横向宽度。另外,本命令对各种数据的输出格式都颇为友好:如字节集被输出为形如“字节集:n{101,121,117,121,97,110,...}”,其中n为字节集长度,{}之间为字节集数据;如数组被输出为形如“数组:m,n{...}”,其中“m,n”表示该数组为m行n列,{}之间为数组数据。 Trace 调试输出 取指定变量中数据的内存地址。返回值为0表示没有取到变量地址。对文本型或字节集型变量而言,如果其长度为0,将返回0;对数组变量而言,如果其成员数为0,也将返回0。对于文本型或字节集型变量,返回值为文本数据或字节集数据的地址。其它情况下,本命令与“取变量地址”具有相同的返回值。注意:一旦变量超出其作用域范围,或文本型/字节集型变量被重新赋值,或数组变量被重新赋值,先前取到的变量地址将变成无效地址,再对该地址进行读写操作很有可能导致程序崩溃。 GetVarDataAddr 取变量数据地址 返回指定子程序的内存代码地址(在内联汇编代码中可以在执行本命令后立即检查EAX寄存器获得) GetSubAddress 取子程序地址 返回指定变量的内存地址(在内联汇编代码中可以在执行本命令后立即检查EAX寄存器获得),如欲修改该地址处内容(尤其是文本型、字节集型或复合数据类型变量),请谨慎操作,否则很可能造成内存垃圾或程序崩溃 GetVarAddress 取变量地址 在编译后文件代码段中当前语句位置置入指定的机器指令码数据 MachineCode 置入代码 spec LibAlias 支持库代号 此参数值用于替换上一参数中的“文本替换符”,并与之依序一一对应。即,此处的第一个参数用于替换第一个“文本替换符”,第二个参数用于替换第二个“文本替换符”,如此类推,但特殊情况下除外(如%n和%N就不占用此参数)。特别地,如果本参数为数组,则将数组中的每一个成员作为一个逻辑单位与“文本替换符”进行逐一匹配和替换。如果本参数不是文本型,则首先将其(或其成员)转换为文本,然后进行替换操作。 此文本中可包含“半角双引号替换符(初始值为"`")”“全角左引号替换符(初始值为"~")”“全角右引号替换符(初始值为"~")”“文本替换符”。其中“文本替换符”由前缀文本(初始值为"%")和紧接着的下一个半角字符(可为"s","d","f","t","T","n","N"等)组成。当命令执行后,此文本中的这些特殊文本将被替换为相应的文本(如`被替换为",~被分别替换为“和”,%s,%d,%f被替换为参数文本,%t被替换为半角双引号包围的参数文本,%T被替换为全角双引号包围的参数文本),%n被替换为换行符(即易语言中的“#换行符”常量),%N被替换为两个换行符(相当于两个连续的%n)。如果此参数的类型不是“文本型”,则首先将其转换为文本型,再进行如上处理。本命令的返回值,就是经过以上文本替换操作后的结果文本。上述提到的各种替换符或其前缀,可通过“取文本_属性设置”命令自行定义。注意:当“文本替换符”为%n或%N时,它不占用后面的参数值。 原始文本 当调用“取文本”命令时,完整的文本替换符(由前缀+特定字符组成)将被替换为相应位置处的参数文本(或特定文本)。如果本参数被省略,则保持原有替换符前缀不变。系统初始化的文本替换符前缀是“%”。 文本替换符前缀 当调用“取文本”命令时,此处指定的参数值将被替换为全角右引号(”)。如果本参数被省略,则保持原有替换符不变。系统初始化的全角右引号替换符是“~”(此键位于ESC键下方,输入时需同时按下Shift)。注意,此参数值可以等同于第二个参数“全角左引号替换符”,但不可等同于第一个参数“半角双引号替换符”。 全角右引号替换符 当调用“取文本”命令时,此处指定的参数值将被替换为全角左引号(“)。如果本参数被省略,则保持原有替换符不变。系统初始化的全角左引号替换符是“~”(此键位于ESC键下方,输入时需同时按下Shift)。注意,此参数值不可等同于第一个参数“半角双引号替换符”。 全角左引号替换符 当调用“取文本”命令时,此处指定的参数值将被替换为半角双引号(")。如果本参数被省略,则保持原有替换符不变。系统初始化的半角双引号替换符是“`”(此键位于ESC键下方)。 半角双引号替换符 参数二 如果本参数被省略,默认为0。 参数一 可以为易语言支持库开发手册中定义的以“NES_”,“NRS_”,“NAS_”开头的常量之一。 功能号 本参数应当是“申请内存”命令的返回值。 欲释放的内存地址 如果本参数为“真”,则将申请到的内存区域全部以0填充。如果省略本参数,默认为“假”。 是否清零 欲申请的内存字节数 本参数值将作为参数传入被调用子程序。如果相应子程序没有参数,请省略本参数;如果相应子程序有多个参数,请重复提供本参数。请务必提供准确的参数类型和参数个数,否则后果不可预知。 参数 本参数用于接收子程序被调用后的返回值;如果该子程序没有返回值或不需要接收返回值,请省略本参数。提供本参数时,请务必提供准确的数据类型,否则所得结果可能不正确。 返回值 保留参数 提示:在子程序名称前加“&”即可得到该子程序的“子程序指针”,如“&子程序1”就是“子程序1”的子程序指针;子程序地址可通过中的“取子程序地址()”命令获取,到整数(&子程序1)返回的也是子程序1的执行地址,也可通过Windows系统API“GetProcAddress()”获取,或由外部程序传入。 子程序指针或子程序地址 单位为毫秒。如果本参数小于或等于0,则子程序将被立刻调用。本参数最大可设置为 2147483647(0x7fffffff) 毫秒(约 596 小时)。 推迟时间 可以为普通数值、变量、命令/方法调用、子语句等。如果本参数为命令/方法调用或子语句,总是会被执行,即使在非调试版本中。 欲检查值 对于非“文本型”参数,将自动转换为文本。本参数可接受任意基本类型,但不接受数组以及自定义数据类型。 欲输出值 变量 单位为毫秒。提示:1000毫秒等于1秒。 等待时间 欲获取其地址的子程序 欲获取其地址的变量 欲置入到代码段中的机器指令码数据,可以是字节集数据或二进制文件名文本 代码数据 时间到文本 检查 输出调试文本 GetNewInf krnln.fnr krnln.fne %d %I64d %f %f | (?未知?) | %I64d | %d | } | %d, { 字节集:%d 字节集:0{} | (子程序地址:%d) | | “” ” “ (空) | %s | 假 真 ] | [ %f%s (?未知?)%s %I64d%s %d%s }%s 字节集:0{}%s (子程序地址:%d)%s (空)%s %s%s %s ] , %s%d * 数组: (?未知?) } 字节集:0{} (子程序地址:%d) (空) |