首先声明,本文的读者:具有相当的易言语基础的、能较熟练地把常用的的API从VB/C声明转换到易言语DLL命令的易言语喜欢者。
1,使用指针
易言语中出于安定、方便考虑,没有直接提供指针,这正在进行一些高级 纵时不是很方便,固然有一些第三方支撑库可以取出变量指针(比如我的eLib++ 注:该支撑库系Delphi开发,本人已开放源代 ,你可以到易言语下载区瞧瞧)但是仅仅为了这个 纵就带上一个支撑库不太值得。实在用一个API,加上一些技术就可以欺骗Windows和易言语,让它们报告你一个变量的指针。
这个API是lstrcpyn。用过C开发Windows下的步骤的朋友可能对这个API相比熟识,就是字符串拷贝。正在windows下取代C准则库函数strncpy的。字符串拷贝怎样能获得变量指针呢?秘密就正在这个API的返回值:
瞧瞧MSDN:“If the function succeeds, the return value is a pointer to the buffer”
该函数把第二个参数指定的字符串双制到第一个参数指定的字符串,第三个参数指定双制的长度。假如双制成功,返回第一个参数(缓冲区buffer)的地点。瞧到了吗?它返回第一个参数的地点!!那么我们把需求取地点的变量给它的第一个参数,然后想要领让它双制成功,它不就返回了那个变量的地点了吗?
界说一个DLL命令如下:
Dll命令:取文本指针
返回值类型:整数型
正在Dll库中的命令名:lstrcpyn
参数:欲取其指针的文本 数据类型:文本型 <传址>
参数
1,使用指针
易言语中出于安定、方便考虑,没有直接提供指针,这正在进行一些高级 纵时不是很方便,固然有一些第三方支撑库可以取出变量指针(比如我的eLib++ 注:该支撑库系Delphi开发,本人已开放源代 ,你可以到易言语下载区瞧瞧)但是仅仅为了这个 纵就带上一个支撑库不太值得。实在用一个API,加上一些技术就可以欺骗Windows和易言语,让它们报告你一个变量的指针。
这个API是lstrcpyn。用过C开发Windows下的步骤的朋友可能对这个API相比熟识,就是字符串拷贝。正在windows下取代C准则库函数strncpy的。字符串拷贝怎样能获得变量指针呢?秘密就正在这个API的返回值:
瞧瞧MSDN:“If the function succeeds, the return value is a pointer to the buffer”
该函数把第二个参数指定的字符串双制到第一个参数指定的字符串,第三个参数指定双制的长度。假如双制成功,返回第一个参数(缓冲区buffer)的地点。瞧到了吗?它返回第一个参数的地点!!那么我们把需求取地点的变量给它的第一个参数,然后想要领让它双制成功,它不就返回了那个变量的地点了吗?
界说一个DLL命令如下:
Dll命令:取文本指针
返回值类型:整数型
正在Dll库中的命令名:lstrcpyn
参数:欲取其指针的文本 数据类型:文本型 <传址>
参数