VFP中常用WIN32API函数调用事例

VFP中常用WIN32API函数调用事例,第1张

VFP中常用WIN32API函数调用事例,第2张

我们在编写VFP的时候,为了弥补VFP自身功能的不足,经常会使用WIN32API函数来扩展VFP的函数行,比如获取系统信息、操作注册表等。但是由于WIN32API函数是C++的数据结构形式,调用时VFP的数据格式不一样,所以调用时经常出现问题。目前一些资料大多是关于如何调用VB、DELPHI等语言,而关于如何调用VFP的例子很少。在这里,我将介绍在VFP如何多次调用WIN32API函数,并介绍一些常用的WIN32API函数。由于本人水平有限,介绍的内容仅供大家参考,也欢迎大家在我的【请留言】中讨论:

一、在VFP调用WIN32API函数的格式

在VFP调用WIN32API函数的命令主要有:

声明- DLL

清除DLLS

1.DECLARE-DLL它用于在外部Windows 32位动态链接库中注册一个函数(。DLL)。

语法:在库名[as aliasname]中声明[cfunctiontype]函数名

.......[cParamType1 [@] ParamName1,cParamType2 [@] ParamName2,...]

描述:

CFunctionType指定该函数返回值的类型,其类型代码如下:

SHORT16-bit整数

INTEGER32-bit整数

SINGLE 32位浮点数

DOUBLE 64位浮点数

线

FunctionName指定要注册的32位函数的名称。请注意,FunctionName区分大小写。

如果此函数的名称与Visual FoxPro的保留字相同,则应使用AS参数重命名。

IN LibraryName指定该函数所在的外部动态链接库的文件名。如果库名为:

WIN32API,GDI32.DLL的VFP将寻找KERNEL32.DLL,

USER32.DLL、MPR.DLL和ADVAPI32.DLL等动态链接库的文件名。

Aliassname当API函数名与Visual FoxPro的保留字相同时,采用另一个别名Aliassname,不区分大小写。

cParameterType1 [@] ParamName1,cParameterType2 [@] ParamName2,...

传递给被调用的32位的参数的类型和名称。DLL函数。它的类代码类似于FunctionType。如果要通过引用方法传递参数,应该在参数名前加上@。

2.清除DLLS释放所有由DECLARE-DLL命令加载的动态链接库。

......WIN32API函数一旦声明成功,就可以作为通用函数使用?Xxx(),=xxx()来调用。

....下面用一个具体的例子来谈谈win32api在Vfp中的应用:

1.使用win32api函数获取指定磁盘的卷标:

Stor 0到C_var,C_cd,C_qf

C_Var='c:\ '

在Win32API STRING @中声明整数GetVolumeInformation,STRING @,INTEGER,;

整数@,整数@,整数@,字符串@,整数

xx=GetVolumeInformation(C_Var,"",20,@C_var,@C_cd,@C_qf,0,0)

Clearls & &释放所有由DECLARE-DLL命令加载的动态链接库。

XXX0成功获取指定磁盘的卷标,否则失败。

C_var=指定磁盘的卷标,是一个十进制值,和我们在DOS中看到的十六进制值不同。

C_cd=系统指定的文件名各部分的长度,为十进制值。

C_qf=文件名的大小写标志,为十进制值。

有多简单?我们可以利用获得的磁盘卷标对我们的软件进行加密,使我们的软件具有防拷贝的功能。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » VFP中常用WIN32API函数调用事例

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情