射精一区欧美专区|国产精品66xx|亚洲视频一区导航|日韩欧美人妻精品中文|超碰婷婷xxnx|日韩无码综合激情|特级黄片一区二区|四虎日韩成人A√|久久精品内谢片|亚洲成a人无码电影

您現(xiàn)在的位置:首頁 > IT認(rèn)證 > 練習(xí)中心 >

VFP中常用WIN32API函數(shù)調(diào)用事例


?  我們在VFP編程時,為了彌補(bǔ)VFP本身功能的不足,常常會用到WIN32API函數(shù)來對VFP的功能行擴(kuò)展,例如取得系統(tǒng)信息、對注冊表進(jìn)行操作等,但是由于WIN32API函數(shù)是C++的數(shù)據(jù)結(jié)構(gòu)形式,在調(diào)用時與VFP的數(shù)據(jù)格式有所不同,因此在調(diào)用時往往會產(chǎn)生問題,而目前的一些資料所介紹的大都是VB、DELPHI等語言如何調(diào)用,對VFP如何調(diào)用介紹的比較少,更缺少具體的調(diào)用事例,下面我分幾次介紹在VFP如何調(diào)用WIN32API函數(shù),并就一些常用的WIN32API函數(shù)作一介紹,由于 本人水平有限,所介紹的內(nèi)容,僅供您參考,也歡迎您在我的[請您留言]中共同探討:

  一、VFP中調(diào)用WIN32API函數(shù)的格式

  VFP中調(diào)用WIN32API函數(shù)的命令主要是:

  DECLARE - DLL

  CLEAR DLLS

  1.DECLARE - DLL 它用于注冊外部 Windows 32 位動態(tài)鏈接庫 ( .DLL ) 中的一個函數(shù)。

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

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

  說明:

  cFunctionType 指定該函數(shù)返回值的類型,其類型代碼如下:

  SHORT?????16 位整數(shù)

  INTEGER????32 位整數(shù)

  SINGLE???? 32 位浮點數(shù)

  DOUBLE???? 64 位浮點數(shù)

  STRING?????? 字符串

  FunctionName 指定要注冊使用的32位函數(shù)名。注意 FunctionName 區(qū)分大小寫。

  如果該函數(shù)名與Visual FoxPro的保留字相同,應(yīng)使用AS參數(shù)另起別名。

  IN LibraryName 指定該函數(shù)所在的外部動態(tài)鏈接庫文件名,如果LibraryName為:

  WIN32API時,VFP將依次查找KERNEL32.DLL、GDI32.DLL、

  USER32.DLL、MPR.DLL及ADVAPI32.DLL等動態(tài)鏈接庫文件名。

  AS AliasName 當(dāng)API函數(shù)的名稱與Visual FoxPro的保留字相同時,另取 AliasName別名,另取的別名是不區(qū)分大小寫的。

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

  指定傳遞給被調(diào)用的32位.DLL函數(shù)的參數(shù)類型及參數(shù)名稱。其類 型代碼如FunctionType,如果要以傳址方法傳遞參數(shù)則應(yīng)在參數(shù)名前加上@。

  2.CLEAR DLLS 釋放所有利用DECLARE - DLL命令所裝入的動態(tài)鏈接庫。

  ....一旦申明WIN32API函數(shù)成功,就可以和一般函數(shù)一樣用 ?xxx()、=xxx() 來調(diào)用。

  ....下面以具體事例談?wù)剋in32api在Vfp中的運用:

  1.利用win32api函數(shù)獲取指定磁盤的卷標(biāo):

  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命令所裝入的動態(tài)鏈接庫。

  xx<>0 獲取指定磁盤的卷標(biāo)成功,反之則未成功。

  C_var=指定磁盤的卷標(biāo),是個十進(jìn)制的數(shù)值,與我們在DOS下看到的16進(jìn)制不同。

  C_cd=系統(tǒng)規(guī)定的文件名每一部分的長度,是個十進(jìn)制的數(shù)值。

  C_qf=文件名的大小寫標(biāo)志,是個十進(jìn)制的數(shù)值。

  怎么樣很簡單吧,我們可以把獲取的磁盤卷標(biāo),用來加密我們的軟件,這樣 我們的 軟件就具有防拷貝的功能了。

上一條:下面沒有鏈接了
下一條:個性化表單五技巧

相關(guān)文章

無相關(guān)信息
更新時間2022-03-13 10:54:34【至頂部↑】
聯(lián)系我們 | 郵件: | 客服熱線電話:4008816886(QQ同號) | 

付款方式留言簿投訴中心網(wǎng)站糾錯二維碼手機(jī)版

客服電話: