VFP调用DLL技巧

 

VFP的主要是用于数据库开发,所以开发软件自身配带的功能都是针对数据库开发,对于Windows的管理和系统信息的捕获就很困难了,只能调用OCX或DLL来扩展其功能,下而将详细讲解一下DLL的调用技巧:

调用DLL语法:

Declare 返回值类型 要调用的函数名称 相关DLL或LIB文件 传入参数类开型 [字段名]......有多少个传入参就定多少

举例:要调用User32内的函数Findwindow

Declare Integer FindWindow In User32.DLL String lpClassName, String lpWindowName

这个是基础,但再深入调用DLL时,你会发现有部分DLL的传入参数是一个指针,这种情况如何处理呢.

举例:要调用kernel32内的ProcessIdToSessionId其传入参数SessionID是一个数值型指针,那么声名就要更改一下,在指针的传入参前加入@,其实也不能理解,DLL之所以用指针,最大的原因就是要进行值传递,相当于VB的by ref,指针返来的值可以理解为一个值传递变量,所以VF也要用@来声名该变量是值传递的变量.

Declare Integer ProcessIdToSessionId IN kernel32 integer ProcessID,integer @SessionID

使用时也用@来传入变量

int ProcessID
int SessionID
Er1=ProcessIDToSessionID(ProcessID,@SessionID)

*注:ER1是返回函数是否正常被执行的变量

但VFP有个很大的缺陷,就是不支持定义结构体,所以有很大部份DLL由于要传入结构体参数,而无法被VFP调用.

要查看DLL函数的定义及传入参资料,有一个很好的软件叫Apifox,虽然他是以VB的语法来讲述,但只要对VB语法有简单了解就可以很明名知道在VFP中是如何调用

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值