特殊功能支持库

特殊功能支持库 帮助手册20080826版 返回支持库手册 返回首页

本支持库提供部分相对特殊的命令，供易语言高级用户使用。

操作系统支持： Windows、Linux

命令类别：

系统处理

程序调试

其他

附加

适用版本，特殊功能支持库 （2.1#1版）


其他

其他 类别 跳至：特殊功能支持库


置入代码 命令 操作系统支持：Windows、Linux 所属类别：其他

为高级用户提供，初级用户无需掌握；在编译后文件代码段中当前语句位置置入指定的机器指令码数据。

语法： 无返回值 置入代码 （代码数据）

参数名 | 描 述
代码数据 | 必需的； 通用型。欲置入到代码段中的机器指令码数据，可以是字节集数据或二进制文件名文本。

例程:

说明:

通过“置入代码”命令实现一个断点的效果。

参见:例程


取变量地址 命令 操作系统支持：Windows、Linux 所属类别：其他

为高级用户提供，初级用户无需掌握；返回指定变量的内存地址（在内联汇编代码中可以在执行本命令后立即检查EAX寄存器获得），如欲修改该地址处内容（尤其是文本型、字节集型或复合数据类型变量），请谨慎操作，否则很可能造成内存垃圾或程序崩溃。

语法： 整数型 取变量地址 （欲获取其地址的变量）

参数名 | 描 述
欲获取其地址的变量 | 必需的； 通用型，参数数据只能提供变量及变量数组。

例程:

说明:

通过“取变量地址”命令获得指定变量的地址。

注意：变量的地址有时不和变量实际内容的地址相同。如果要准确的取出变量内数据所在的地址，请使用“取变量数据地址”命令。


取子程序地址 命令 操作系统支持：Windows、Linux 所属类别：其他

为高级用户提供，初级用户无需掌握；返回指定子程序的内存代码地址（在内联汇编代码中可以在执行本命令后立即检查EAX寄存器获得）。

语法： 整数型 取子程序地址 （欲获取其地址的子程序）

参数名 | 描 述
欲获取其地址的子程序 | 必需的； 子程序指针。

例程:

说明:

通过“取子程序地址”命令获取指定子程序的地址（指针）。

注意：本命令效果等同于“到数值(&[子程序名])”。


取变量数据地址 命令 操作系统支持：Windows、Linux 所属类别：其他

为高级用户提供，初级用户无需掌握；取指定变量中数据的内存地址。返回值为0表示没有取到变量地址。对文本型或字节集型变量而言，如果其长度为0，将返回0；对数组变量而言，如果其成员数为0，也将返回0。对于文本型或字节集型变量，返回值为文本数据或字节集数据的地址。其它情况下，本命令与“取变量地址”具有相同的返回值。注意：一旦变量超出其作用域范围，或文本型/字节集型变量被重新赋值，或数组变量被重新赋值，先前取到的变量地址将变成无效地址，再对该地址进行读写操作很有可能导致程序崩溃。

语法： 整数型 取变量数据地址 （变量）

参数名 | 描 述
变量 | 必需的； 通用型，参数数据只能提供变量及变量数组。

例程:

说明:

通过“取变量数据地址”命令，获取指定变量内存放数据的真实内存地址。


申请内存 命令 操作系统支持：Windows、Linux 所属类别：其他

为高级用户提供，初级用户无需掌握；向易语言运行时系统申请指定大小的内存区域。执行成功返回申请到的内存首地址，失败返回0。由本命令申请的内存必须通过“释放内存”命令释放。

语法： 整数型 申请内存 （欲申请的内存字节数， ［是否清零］）

参数名 | 描 述
欲申请的内存字节数 | 必需的； 整数型。
是否清零 | 可选的； 逻辑型。如果本参数为“真”，则将申请到的内存区域全部以0填充。如果省略本参数，默认为“假”。

例程:

说明:

通过“申请内存”命令，申请一段指定大小的内存空间。


释放内存 命令 操作系统支持：Windows、Linux 所属类别：其他

为高级用户提供，初级用户无需掌握；释放由“申请内存”所获取的内存区域。内存区域被释放后，不允许再进行读写操作。

语法： 无返回值 释放内存 （欲释放的内存地址）

参数名 | 描 述
欲释放的内存地址 | 必需的； 整数型。本参数应当是“申请内存”命令的返回值。

例程:

说明:

通过“释放内存”命令，释放指定内存指针所指向的内存区域。


程序调试

程序调试 类别 跳至：特殊功能支持库


调试输出 命令 操作系统支持：Windows、Linux 所属类别：程序调试

仅在易程序的调试版本中被执行，在发布版本中将被直接跳过；类似于易语言核心库中的“输出调试文本()”命令，向输出面板输出一行调试文本。本命令可接受任意多个通用型(任意基本类型)参数及数组。与“输出调试文本()”不同，本命令的所有参数数据仅输出为一行文本（各参数之间以“ | ”间隔）——既保持了数据相关性，又有效利用了输出面板的横向宽度。另外，本命令对各种数据的输出格式都颇为友好：如字节集被输出为形如“字节集:n{101,121,117,121,97,110,...}”，其中n为字节集长度，{}之间为字节集数据；如数组被输出为形如“数组:m,n{...}”，其中“m,n”表示该数组为m行n列，{}之间为数组数据。

语法： 无返回值 调试输出 （［欲输出值］）

参数名 | 描 述
欲输出值 | 可选的； 可扩充的；通用型，参数数据可以同时提供数组或非数组数据。对于非“文本型”参数，将自动转换为文本。本参数可接受任意基本类型，但不接受数组以及自定义数据类型。

例程:

说明:

通过“调试输出”命令向输出栏中输出指定内容。


验证 命令 操作系统支持：Windows、Linux 所属类别：程序调试

类似于易语言核心库中的“检查()”命令，本命令在调试版中验证参数值（或其计算结果）是否为“零值”，如果是“零值”则易程序的执行将被暂停且警示（相当于设置了条件断点）。与“检查()”命令不同的是，本命令在运行版中仅仅忽略“检查”这个步骤，但不会放弃执行参数语句（这在参数为命令/方法调用或子语句的情况下尤为重要）；此外，本命令可以检查任意基本类型的参数，且可以同时检查多个参数。如果提供了多个参数，所有的参数都会被验证，但只要出现一个“零值”，程序就会被暂停且警示。“零值”定义：字节型/短整数型/整数型/长整数型值等于0，小数型/双精度小数型绝对值小于0.00001，逻辑型值为“假”，文本型/字节集型数据长度等于0，数组成员数等于0，日期时间值为“1899/12/30 00:00:00”，子程序指针的执行地址为0。注：目前暂不支持“子语句类型”的参数。

语法： 无返回值 验证 （［欲检查值］）

参数名 | 描 述
欲检查值 | 可选的； 可扩充的；通用型，参数数据可以同时提供数组或非数组数据。可以为普通数值、变量、命令/方法调用、子语句等。如果本参数为命令/方法调用或子语句，总是会被执行，即使在非调试版本中。

例程:

说明:

通过“验证”命令检查“内存指针”是否为“0”。如果为“0”程序将在这里被截停。


附加

附加 类别 跳至：特殊功能支持库

调用子程序 | 调用易系统功能 | 取文本 | 取文本_属性设置
取文本_属性读取 |  |  |


调用子程序 命令 操作系统支持：Windows、Linux 所属类别：附加

为高级用户提供，初级用户无需掌握；以stdcall方式(即WINAPI或Pascal)调用指定的子程序（子程序指针，或子程序地址）并取回被调用子程序的返回值，支持任意多个参数，参数支持除字节集之外的其它所有基本数据类型。调用子程序之前，您需要明确地知道它的参数类型和参数个数，以及返回值类型。本命令返回“真”仅表示调用过程中没有出异常情况，并不表示被调用的子程序执行成功。

语法： 逻辑型 调用子程序 （子程序指针或子程序地址， ［保留参数］， ［返回值］， ［参数］）

参数名 | 描 述
子程序指针或子程序地址 | 必需的； 通用型。提示：在子程序名称前加“&”即可得到该子程序的“子程序指针”，如“&子程序1”就是“子程序1”的子程序指针；子程序地址可通过中的“取子程序地址()”命令获取，到整数(&子程序1)返回的也是子程序1的执行地址，也可通过Windows系统API“GetProcAddress()”获取，或由外部程序传入。
保留参数 | 可选的； 通用型。
返回值 | 可选的； 通用型，参数数据只能提供变量。本参数用于接收子程序被调用后的返回值；如果该子程序没有返回值或不需要接收返回值，请省略本参数。提供本参数时，请务必提供准确的数据类型，否则所得结果可能不正确。
参数 | 可选的； 可扩充的；通用型。本参数值将作为参数传入被调用子程序。如果相应子程序没有参数，请省略本参数；如果相应子程序有多个参数，请重复提供本参数。请务必提供准确的参数类型和参数个数，否则后果不可预知。

例程:

说明:

通过“调用子程序”命令，执行指定子程序的地址指针。


调用易系统功能 命令 操作系统支持：Windows、Linux 所属类别：附加

为高级用户提供，初级用户无需掌握；具体的功能号及其所对应的参数值和返回值，请参考易语言支持库开发手册。

语法： 整数型 调用易系统功能 （功能号， ［参数一］， ［参数二］）

参数名 | 描 述
功能号 | 必需的； 整数型。可以为易语言支持库开发手册中定义的以“NES_”,“NRS_”,“NAS_”开头的常量之一。
参数一 | 可选的； 整数型。如果本参数被省略，默认为0。
参数二 | 可选的； 整数型。如果本参数被省略，默认为0。

例程:

说明:

通过“调用易系统功能”命令调用易语言核心集成的未公开功能。


取文本 命令 操作系统支持：Windows、Linux 所属类别：附加

为高级用户提供，初级用户无需掌握；本命令有多项功能：将任意基本数据类型的参数或数组参数转换为文本；文本中包含引号（"、“、”）和换行符等情况下的简捷处理方案；提供类似于C/C++语言中sprintf()的格式化文本功能。 示例：取文本 (“~%s~诞生于%d年秋。”, “易语言”, 2000) 等效于：“” ＋ #左引号 ＋ “易语言” ＋ #右引号 ＋ “诞生于” ＋ 到文本 (2000) ＋ “年秋。” 都将生成文本：““易语言”诞生于2000年秋。” 但很明显，前者比后者简捷明了很多，且输入代码时更加方便直观。后者因为 #引号、#左引号、#右引号 等常量以及加号（“+”）的使用，导致代码分散且混乱，不易输入和阅读。

语法： 文本型 取文本 （原始文本， ［参数］）

参数名 | 描 述
原始文本 | 必需的； 通用型，参数数据可以同时提供数组或非数组数据。此文本中可包含“半角双引号替换符（初始值为"`"）”“全角左引号替换符（初始值为"~"）”“全角右引号替换符（初始值为"~"）”“文本替换符”。其中“文本替换符”由前缀文本（初始值为"%"）和紧接着的下一个半角字符（可为"s","d","f","t","T","n","N"等）组成。当命令执行后，此文本中的这些特殊文本将被替换为相应的文本（如`被替换为"，~被分别替换为“和”，%s,%d,%f被替换为参数文本，%t被替换为半角双引号包围的参数文本，%T被替换为全角双引号包围的参数文本），%n被替换为换行符（即易语言中的“#换行符”常量），%N被替换为两个换行符（相当于两个连续的%n）。如果此参数的类型不是“文本型”，则首先将其转换为文本型，再进行如上处理。本命令的返回值，就是经过以上文本替换操作后的结果文本。上述提到的各种替换符或其前缀，可通过“取文本_属性设置”命令自行定义。注意：当“文本替换符”为%n或%N时，它不占用后面的参数值。
参数 | 可选的； 可扩充的；通用型，参数数据可以同时提供数组或非数组数据。此参数值用于替换上一参数中的“文本替换符”，并与之依序一一对应。即，此处的第一个参数用于替换第一个“文本替换符”，第二个参数用于替换第二个“文本替换符”，如此类推，但特殊情况下除外（如%n和%N就不占用此参数）。特别地，如果本参数为数组，则将数组中的每一个成员作为一个逻辑单位与“文本替换符”进行逐一匹配和替换。如果本参数不是文本型，则首先将其（或其成员）转换为文本，然后进行替换操作。

例程:

说明:

通过“取文本”命令，用指定文本替换一段文本中特殊标记位置的内容。


取文本_属性设置 命令 操作系统支持：Windows、Linux 所属类别：附加

为高级用户提供，初级用户无需掌握；本命令用于设置“取文本”命令所使用的各项属性值。对于这些属性，系统都有默认的初始值（详见本命令的参数说明），故一般情况下无需调用此命令。所有文本属性值均不允许超过10个字符（或5个汉字），否则将导致设置失败且返回“假”。通过本命令所设置的属性值将一直有效，直至程序结束或下一次调用本命令修改了此修改值。

语法： 逻辑型 取文本_属性设置 （［半角双引号替换符］， ［全角左引号替换符］， ［全角右引号替换符］， ［文本替换符前缀］）

参数名 | 描 述
半角双引号替换符 | 可选的； 文本型。当调用“取文本”命令时，此处指定的参数值将被替换为半角双引号(")。如果本参数被省略，则保持原有替换符不变。系统初始化的半角双引号替换符是“`”（此键位于ESC键下方）。
全角左引号替换符 | 可选的； 文本型。当调用“取文本”命令时，此处指定的参数值将被替换为全角左引号(“)。如果本参数被省略，则保持原有替换符不变。系统初始化的全角左引号替换符是“~”（此键位于ESC键下方，输入时需同时按下Shift）。注意，此参数值不可等同于第一个参数“半角双引号替换符”。
全角右引号替换符 | 可选的； 文本型。当调用“取文本”命令时，此处指定的参数值将被替换为全角右引号(”)。如果本参数被省略，则保持原有替换符不变。系统初始化的全角右引号替换符是“~”（此键位于ESC键下方，输入时需同时按下Shift）。注意，此参数值可以等同于第二个参数“全角左引号替换符”，但不可等同于第一个参数“半角双引号替换符”。
文本替换符前缀 | 可选的； 文本型。当调用“取文本”命令时，完整的文本替换符（由前缀+特定字符组成）将被替换为相应位置处的参数文本（或特定文本）。如果本参数被省略，则保持原有替换符前缀不变。系统初始化的文本替换符前缀是“%”。

例程:

说明:

通过“取文本_属性设置”命令，设置在使用“取文本”命令时被替换的字符格式。


取文本_属性读取 命令 操作系统支持：Windows、Linux 所属类别：附加

为高级用户提供，初级用户无需掌握；本命令用于获取“取文本”命令所使用的各项属性设置，结果将存入相应的参数变量中。

语法： 无返回值 取文本_属性读取 （［半角双引号替换符］， ［全角左引号替换符］， ［全角右引号替换符］， ［文本替换符前缀］）

参数名 | 描 述
半角双引号替换符 | 可选的； 文本型，参数数据只能提供变量。
全角左引号替换符 | 可选的； 文本型，参数数据只能提供变量。
全角右引号替换符 | 可选的； 文本型，参数数据只能提供变量。
文本替换符前缀 | 可选的； 文本型，参数数据只能提供变量。

例程:

说明:

通过“取文本_属性读取”命令获取“取文本”命令执行时替换字符的格式。


系统处理

系统处理 类别 跳至：特殊功能支持库