标题:VFP中如何处理C式的数组及结构,并传递给API,有没详细的参考资料,谢谢。
只看楼主
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
结帖率:66.67%
 问题点数:0 回复次数:2 
VFP中如何处理C式的数组及结构,并传递给API,有没详细的参考资料,谢谢。
改写以前的一个游戏小外挂,需要用到大量的窗口位置信息,鼠标位置信息,及消息处理函数。调用API时,如鼠标在窗口位置的设置时,传入的参数是一个结构Structure,S.X和S.Y是鼠标要移动到的位置,基本的方法是知道的,就是当作一个文本串来处理,但实际操作起来又总没对。这类的参考文献,老大些有没有,请分享一下,谢谢。
搜索更多相关主题的帖子: 参考资料 参考文献 如何 信息 游戏 
2013-08-15 16:45
wasun2012
Rank: 2
等 级:论坛游民
帖 子:12
专家分:17
注 册:2012-11-17
得分:0 
在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"的形式),来支持子结构体(结构体中包含对其它结构体的指针引用)

2013-08-31 11:06
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
得分:0 
回复 2楼 wasun2012
3q for your recommendation, the site is useful.
2013-08-31 18:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-419165-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.600496 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved