VFP中如何处理C式的数组及结构,并传递给API,有没详细的参考资料,谢谢。
改写以前的一个游戏小外挂,需要用到大量的窗口位置信息,鼠标位置信息,及消息处理函数。调用API时,如鼠标在窗口位置的设置时,传入的参数是一个结构Structure,S.X和S.Y是鼠标要移动到的位置,基本的方法是知道的,就是当作一个文本串来处理,但实际操作起来又总没对。这类的参考文献,老大些有没有,请分享一下,谢谢。
在VFP 中 处理Api Structure是比较难的,因为在调用API函数时需要用到结构体作为参数。
维基上的两种解决方法供你参考:
1、手动将结构体转化为字符串形式,示例参考 http://fox.
2、由 William GC Steinford 提供的 Api Structure Class,参考 http://fox.
使用方法:
2.1 首先声明DLL函数(定义结构体作为字符串以传址方式传递:“STRING @ 参数名”
2.2 调用包含Struct class的.prg,SET PROCEDURE TO .prg
2.3 定义你自己的基于Struct的类,重写Init事件,为结构体AddField合适的字段
2.4 CREATEOBJECT()你的structure class,然后使用object.fld['fieldname']填充字段(字段名不大小写敏感,也无需匹配 C++ 或 VB 类型的定义名称:字段名不在在结构体中保存)
2.5 复制object.Structure字符串到一个LOCAL字符串变量,然后调用你的 DLL/API 函数,传递这个LOCAL字符串变量
你甚至可以通过创建另外一个structure 对象,指派对象的.Structure 字符串给主对象的子结构体字段(必须以"@STRING"的形式),来支持子结构体(结构体中包含对其它结构体的指针引用)