• 注册
  • 关于作者
    企业认证:趣记站长
    关注 6 粉丝 4 喜欢 9 内容 992
    江西省·南昌市
    聊天 送礼
    • 查看作者
    • VFP中常用WIN32API函数调用事例

      我们在VFP编程时,为了弥补VFP本身功能的不足,常常会用到WIN32API函数

      来对VFP的功能行扩展,例如取得系统信息、对注册表进行操作等,但是由于

      WIN32API函数是C++的数据结构形式,在调用时与VFP的数据格式有所不同,因此在

      调用时往往会产生问题,而目前的一些资料所介绍的大都是VB、DELPHI等语言如

      何调用,对VFP如何调用介绍的比较少,更缺少具体的调用事例,下面我分几次

      介绍在VFP如何调用WIN32API函数,并就一些常用的WIN32API函数作一介绍,由于

      本人水平有限,所介绍的内容,仅供您参考,

      在VFP的应用程序中实现超级链接
      VFP编辑框中实现自动更正的方法,Visual FoxPro 9.0更强大了,如何用VFP的dbf进行SQL Server 7.0 的分布式查询,VFP智能感应的二次开发,谈两种数据库内容HTML格式的输出方法,用FoxWeb在网上快速发布你的FOXPRO数据库,在VFP5.0中实现中英文自动切换,在VFP中实现跟变式组合框及椭圆图形菜单,通过编程运行拨号网络连接,VFP中实现在浏览器中运行应用程序方法,为Visual FoxPro应用程序增加文件压缩功能,在VFP中模拟动画,用Visual FoxPro 5.0 设计数据文件结构浏览器,VFP表跟踪实现方法,让VFP程序在浏览器中运行,怎样在Visual FoxPro 中增加与去除网络联接,谈谈VFP和SQL SERVER搭配做C/S系统,卡拉OK字幕着色动态显示,利用Foxpro在网络环境下开发数据库管理软件经验点滴,用Foxpro制作Windows输入法码表
      Visual Foxpro

      也欢迎您在我的[请您留言]中共同

      探讨:

      .................一、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=文件名的大小写标志,是个十进制的数值。

      .....怎么样很简单吧,我们可以把获取的磁盘卷标,用来加密我们的软件,这样

      我们的 软件就具有防拷贝的功能了。

      在VFP中怎样做出象IE4中的那样的浮动按钮
      VFP编辑框中实现自动更正的方法,Visual FoxPro 9.0更强大了,如何用VFP的dbf进行SQL Server 7.0 的分布式查询,VFP智能感应的二次开发,谈两种数据库内容HTML格式的输出方法,用FoxWeb在网上快速发布你的FOXPRO数据库,在VFP5.0中实现中英文自动切换,在VFP中实现跟变式组合框及椭圆图形菜单,通过编程运行拨号网络连接,VFP中实现在浏览器中运行应用程序方法,为Visual FoxPro应用程序增加文件压缩功能,在VFP中模拟动画,用Visual FoxPro 5.0 设计数据文件结构浏览器,VFP表跟踪实现方法,让VFP程序在浏览器中运行,怎样在Visual FoxPro 中增加与去除网络联接,谈谈VFP和SQL SERVER搭配做C/S系统,卡拉OK字幕着色动态显示,利用Foxpro在网络环境下开发数据库管理软件经验点滴,用Foxpro制作Windows输入法码表
      Visual Foxpro

    • 0
    • 0
    • 0
    • 83
    • 单栏布局 侧栏位置: