動態連線函式庫(dlls)可以說是windows系統的基礎,windows系統或windows的應用
系統在執行過程中,常常通過外部的動態連線函式庫支援其所需功能,如控制螢幕、印表機、
滑鼠、鍵盤等裝置,若在設計過程中,將完成這些功能的程式都重複寫在系統中,就會使 程
序過大。另外一點,就是這些工作函式庫具有共享功能,也就是說可以利用windows程 序開發
工具,直接使用這些屬於windows函式庫的功能,直接在程式中訪問,增加開發的 系統與
windows系統環境的結合能力。windowsapi的大約400多個api功能,大部分都可 供使用者
呼叫,若能用好這些windowsapi功能,既可減少重複開發,又能提高應用系統對 windows環
境的相容性和系統效能。
在windows環境中所提供的工作函式庫主要有下面三個檔案:
·gdi.exe———螢幕顯示及列印功能。
·user.exe———滑鼠、鍵盤、通訊埠、聲音及時鐘功能。
·kernel.exe———檔案及記憶體管理(核心部分)功能。
foxtools.fll就是foxpro for windows提供的訪問windowsapi函式的動態連線函式庫。
它提供下面兩個函式:
regfn()———windowsapi功能註冊函式。
callfn()———windowsapi功能呼叫函式。
要使用windowsapi函式首先應該用regfn()函式註冊該函式,註冊成功後再用callfn()
函式呼叫之。regfn()和callfn()的語法如下。
regfn(<function name>,<argment types>,<return types>,[dll name])
callfn(<fn num>,[<arg1>,<arg2>....])
引數說明:
function name為要呼叫的api函式的函式名稱。
argment types為要呼叫的api函式的引數型別說明。
return types為要呼叫的api函式的返回值型別說明。
dll name為您要呼叫的api函式所在的動態連線函式庫名。必須包括副檔名,如.dll或.dll
或.exe(gdi.exe、user.exe,kernel.exe可省略副檔名)。
{fn num>是用regfn()註冊成功的函式,即regfn()的返回值
[<arg1>,<arg2>...])為引數序列,注意引數型別必須與用regfn()註冊的型別
一致。
如果用regfn()註冊乙個windowsapi函式成功的話,會返回乙個數值,若無法找到指定的
<dll name>將返回-1,同時出現乙個windows錯誤視窗。所以如果您使用windowsapi函式,
您必須保證您所呼叫的函式所在的動態連線函式庫存在,而且函式呼叫格式正確callfn()
預設 傳遞引數的方式為傳值,若要改為傳址,應在該引數前加上@強制符號。
筆者曾經因為滑鼠器左鍵不好使而用windowsapi的swapmousebutton()函式對換了滑鼠器
的左右鍵,下面就以此為例說一下regfn()和callfn()的用法。
swapmousebutton()的語法如下:
swapmousebutton(bool bswap)bswap為真值(1)時將滑鼠器左右鍵對換,為假(0)時
將左右鍵恢復正常設定。
對換過程swapmouse.prg
parameters swap
set library to sys(2004)+"foxtools.fll"
&&連入foxtools.fll庫
fn=regfn("swapmousebutton","i","i","user.exe")
&&註冊swapmousebutton
if fn=-1
wait windows"註冊失敗!"nowait
set library to
return
endif
&&註冊成功
result=callfn(fn,swap)
set library to
return
ASP對FoxPro自由表 DBF檔案 的操作
tag aspfoxpro dbf資料庫 一 問題的提出 經常看到網上有朋友問asp對foxpro庫表 dbf 的操作問題,現實中確有許多應用軟體使用dbf表,如何在網路環境中使用這些資料,使很多朋友一籌莫展。本人在乙個小專案中也遇到這個問題,通過查閱資料,多次試驗,初步解決了這個問題,寫出來與大家...
原創 一段利用C 2005操作FOXPRO表的函式
由於工作需要,需要將一些資料儲存到規定結構的foxpro庫中,我採取的方法是這樣的 首先,拷貝標準庫 空庫 到指定的要匯出的資料夾,然後讀取這個拷貝後的檔案到dt1,通過迴圈把dt的資料新增到dt1中,更新dt1。方法笨了一點,有誰有好的建議,可以提一提!下面是函式 五個引數,dt是含有需要匯出資料...
linux中 中括號 中的判斷引數
源自 http www.diybl.com course 6 system linux linuxjs 20081117 151774.html b file 若檔案存在且是乙個塊特殊檔案,則為真 c file 若檔案存在且是乙個字元特殊檔案,則為真 d file 若檔案存在且是乙個目錄,則為真 e...