API函式宣告

2021-03-31 08:56:58 字數 1850 閱讀 1780

在vb中,如何宣告函式呢?我想,如果你正在看此文,那麼你絕對能夠回答得出這個問題。以下便是你應該很熟悉的函式宣告∶

function setfocus (byval hwnd as long) as long

即,這行**定義了名為setfocus的函式,此函式具有乙個long型資料型別的引數,並按值傳遞(byval),函式執行後將返回乙個long型資料。

api函式的宣告也很類似,如,api中的setfocus 函式是這樣寫的∶

declare function setfocus lib "user32" alias "setfocus" (byval hwnd as long) as long

有點複雜了一些。是的,是複雜了點。但我可以告訴你,除了這些多出來的部分,其他部分還是和你以前學到的東西是一樣的。函式在程式中的呼叫也是一樣。如:

dim dl as long

dl&=setfoucs(form1.hwnd)

但,一點是清楚的。它不象你自己寫的程式那樣能夠看到裡面的執行機理,也不像vb

自帶的函式那樣,能夠從vb的聯機幫助中查到其用法。唯一的方法就是去學、查vb以外的資料。

declare 語句用於在模組級別中宣告對動態鏈結庫 (dll) 中外部過程的引用。對此,你只要記住任何api函式宣告都必須寫這個語句就可以了。

iib 指明包含所宣告過程或函式的動態鏈結庫或**資源。也就是說,它說明的是,函式或過程從何而來的問題。

如在上例中,setfocus lib "user32"說明 函式 setfocus 來自 user32.dll檔案。主要的dll動態連線庫檔案有∶

user32.dll windows管理。生成和管理應用程式的使用者介面。

gdi32.dll 圖形裝置介面。產生windows裝置的圖形輸出

kernel32.dll 系統服務。訪問作業系統的計算機資源。

注意,當dll檔案不在windows或system資料夾中的時候,必須在函式中說明其出處(

路徑)。如,setfocus lib "c:/mydll/user32"

函式宣告中的alias 是可選的。表示將被呼叫的過程在動態鏈結庫 (dll) 中還有另外的名稱(別名)。如,alias "setfocus" ,說明setfocus函式在user32.dll中的另外乙個名稱是,

setfocus。怎麼兩個名都一樣呢?當然,也可以是不同的。在很多情況下,alias說明的函式名,即別名最後乙個字元經常是字元a,如setwindowstext函式的另乙個名稱是

setwindowstexta,表示為alias "setwindowstexta"。這個a只不過是設計家們的習慣的命名約定,表示函式屬於ansi版本。

那麼,別名究竟有什麼用途呢?從理論上講,別名提供了用另乙個名子呼叫api的函式方法。如果你指明了別名,那麼 儘管我們按declare語句後面的函式來呼叫該函式,但在函式的實際呼叫上是以別名作為首要選擇的。如,以下兩個函式(function,abcd)宣告都是有效的,他們呼叫的是同乙個 setfocus函式∶

declare function setfocus lib "user32" "setfocus" (byval hwnd as long) as long

declare abcd setfocus lib "user32" alias "setfocus" (byval hwnd as long) as long

需要注意的是,選用alias的時候,應注意別名的大小寫;如果不選用alias 時的時候,函式名必須注意大小寫,而且不能改動。當然,在很多情況下,由於函式宣告是直接從api

文字遊覽器中拷貝過來的,所以這種錯誤的發生機會是很少的,但您有必要知道這一點。

最後提醒你一句,api宣告(包括結構、常數)必須放在窗體或模組的"通用(general declarations)段。 

理解函式宣告 signal函式的宣告

分兩步分析 假定變數fp是乙個函式指標,呼叫方法如下 fp 因為fp是乙個函式指標,那麼 fp就是該指標指向的函式,所以 fp 就是呼叫該函式的方式。ansi c標準允許程式設計師將上式簡寫為fp 的運算子高於 2.使用具體的函式指標替換fp,此處將0做型別強制轉換,轉換為函式指標,替換fp。對乙個...

VB呼叫系統API的宣告

有些windows api並沒有vb的封裝,這個時候需要手工在呼叫之前進行宣告,通過declare實現。具體可以參看msdn。通常我是記不住語法的,簡單而絕對正確的做法就是查詢微軟官方提供宣告。在windows中可以找到這麼乙個檔案win32api.txt.如果用了google的桌面搜尋的話,找這個...

函式宣告和函式表示式 函式宣告的宣告提前

定義函式的方法主要有三種 1 函式宣告 2 函式表示式 3 new function建構函式 函式宣告的經典格式 function functionname arg1,arg2,函式表示式 var variable function arg1,arg2,小夥伴們應該都聽說過宣告提前的說法,我想在此再...