视窗
loading...
您现在的位置:首页 > IT认证 > 练习中心 >

VFP中常用WIN32API函数调用事例


?  我们在VFP编程时,为了弥补VFP本身功能的不足,常常会用到WIN32API函数来对VFP的功能行扩展,例如取得系统信息、对注册表进行操作等,但是由于WIN32API函数是C++的数据结构形式,在调用时与VFP的数据格式有所不同,因此在调用时往往会产生问题,而目前的一些资料所介绍的大都是VB、DELPHI等语言如何调用,对VFP如何调用介绍的比较少,更缺少具体的调用事例,下面我分几次介绍在VFP如何调用WIN32API函数,并就一些常用的WIN32API函数作一介绍,由于 本人水平有限,所介绍的内容,仅供您参考,也欢迎您在我的[请您留言]中共同探讨:

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

  VFP中调用WIN32API函数的命令主要是:

  DECLARE - DLL

  CLEAR DLLS

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

  语法: DECLARE [cFunctionType] FunctionName IN LibraryName [AS AliasName]

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

  说明:

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

  SHORT?????16 位整数

  INTEGER????32 位整数

  SINGLE???? 32 位浮点数

  DOUBLE???? 64 位浮点数

  STRING?????? 字符串

  FunctionName 指定要注册使用的32位函数名。注意 FunctionName 区分大小写。

  如果该函数名与Visual FoxPro的保留字相同,应使用AS参数另起别名。

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

  WIN32API时,VFP将依次查找KERNEL32.DLL、GDI32.DLL、

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

  AS AliasName 当API函数的名称与Visual FoxPro的保留字相同时,另取 AliasName别名,另取的别名是不区分大小写的。

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

  指定传递给被调用的32位.DLL函数的参数类型及参数名称。其类 型代码如FunctionType,如果要以传址方法传递参数则应在参数名前加上@。

  2.CLEAR DLLS 释放所有利用DECLARE - DLL命令所装入的动态链接库。

  ....一旦申明WIN32API函数成功,就可以和一般函数一样用 ?xxx()、=xxx() 来调用。

  ....下面以具体事例谈谈win32api在Vfp中的运用:

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

  Stor 0 to C_var,C_cd,C_qf

  C_Var='c:'

  DECLARE INTEGER GetVolumeInformation IN Win32API STRING @, STRING @, INTEGER,;

  INTEGER @, INTEGER @, INTEGER @, STRING @, INTEGER

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

  CLEAR DLLS &&释放所有利用DECLARE - DLL命令所装入的动态链接库。

  xx<>0 获取指定磁盘的卷标成功,反之则未成功。

  C_var=指定磁盘的卷标,是个十进制的数值,与我们在DOS下看到的16进制不同。

  C_cd=系统规定的文件名每一部分的长度,是个十进制的数值。

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

  怎么样很简单吧,我们可以把获取的磁盘卷标,用来加密我们的软件,这样 我们的 软件就具有防拷贝的功能了。

閵嗏偓

閵嗏偓

閵嗘劕鍘ょ拹锝咃紣閺勫骸鎷伴悧鍫熸綀鐠囧瓨妲戦妴锟�
閺堫剛鐝柈銊ュ瀻娣団剝浼呴弶銉︾爱娴滃簼绨伴懕鏃傜秹閿涳拷鐎电娴嗘潪鐣屾畱娣団剝浼呴幋鎴滄粦閸旀稒鐪伴弽鍥ㄦ娣団剝浼呴惃鍕毉婢跺嫸绱�閹存垳婊戠亸濠囧櫢娴f粏鈧懐娈戦悧鍫熸綀閽佹ぞ缍旈弶鍐跨礉鐎佃鍨滄禒顒冩祮鏉炵晫娈戞穱鈩冧紖婵″倹婀佸鍌濐唴閹存牗婀佹笟鍨綀閹存牞绻氬▔鏇氫繆閹垵顕崣濠冩閼辨梻閮撮幋鎴滄粦閿涘本婀扮粩娆庣窗缁斿宓嗛崚鐘绘珟閿涳拷鐎电懓甯崚娑樺敶鐎硅鍨滄禒顒佸姽閹板繑鏁禒姗€鈧倸缍嬮惃鍕归柊顒婄礉閼辨梻閮撮弬鐟扮础閿涙岸鍋栨禒锟�:webmaster@jscj.com閵嗏偓閻絻鐦介敍锟�4008816886
上一条:下面没有链接了
下一条:个性化表单五技巧

相关文章

无相关信息
更新时间2022-03-13 10:54:34【至顶部↑】
联系我们 | 邮件: webmaster@jscj.com | 客服热线电话:4008816886(QQ同号) |  濞h濮炵€广垺婀囧顔讳繆

付款方式留言簿投诉中心网站纠错二维码手机版

客服电话: