在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"的形式),来支持子结构体(结构体中包含对其它结构体的指针引用)