1樓:網海1書生
dll是dynamic link library的縮寫,意為動態連結庫。dll檔案一般被存放在c:\windows\system32目錄下。
dll是一個包含可由多個程式同時使用的**和資料的庫。
在windows中,許多應用程式並不是一個完整的可執行檔案,它們被分割成一些相對獨立的動態連結庫,即dll檔案,放置於系統中。當我們執行某一個程式時,相應的dll檔案就會被呼叫。一個應用程式可有多個dll檔案,一個dll檔案也可能被幾個應用程式所共用,這樣的dll檔案被稱為共享dll檔案。
例如,在 windows 作業系統中,comdlg32 dll 執行與對話方塊有關的常見函式。因此,每個程式都可以使用該 dll 中包含的功能來實現「開啟」對話方塊。這有助於促進**重用和記憶體的有效使用。
通過使用 dll,程式可以實現模組化,由相對獨立的元件組成。例如,一個計帳程式可以按模組來銷售。可以在執行時將各個模組載入到主程式中(如果安裝了相應模組)。
因為模組是彼此獨立的,所以程式的載入速度更快,而且模組只在相應的功能被請求時才載入。
此外,可以更為容易地將更新應用於各個模組,而不會影響該程式的其他部分。例如,您可能具有一個工資計算程式,而稅率每年都會更改。當這些更改被隔離到 dll 中以後,您無需重新生成或安裝整個程式就可以應用更新。
通俗一點來說,dll檔案就是一個公用的函式庫,裡面的函式可以被其他軟體通過指定的格式和方式進行呼叫。
2樓:寒軒雪印
這不是函式
是vb宣告api的固定格式
比如public declare function 函式名 lib "api dll檔名" (引數) 返回值
vb 中使用declare的詳細方法? 5
3樓:質量雜論
vb裡的說明語句(declare),僅支援動態鏈結庫(dll)的子程式和無變數函式。
vb程式要使用dll中的函式,首先必須要有特殊的宣告,用declare宣告語句在窗體級或模組級或全域性模組的**宣告段進行宣告,將動態連結庫中的函式宣告到vb中,供vb程式呼叫。
語句格式為:declare sub 過程名lib [ alias " 別名]([byval 引數as型別]),或為declare function函式名lib [alias " 別名]([byval 引數as型別])as型別在宣告中首先用declare關鍵字表示宣告dll中的函式。
vb語言中declare function outpot lib…………
4樓:匿名使用者
這是手動引用外部dll,以outpot 為例通俗點說,outpot 是mydll中的函式outdata在這個vb程式中的別名,你在vb中呼叫outpot 時,就相當於呼叫mydll中的outdata了
具體的可以參見msdn:
用於在模組級別中宣告對動態連結庫 (dll) 中外部過程的引用。
語法 1
[public | private] declare sub name lib "libname" [alias "aliasname"] [([arglist])]
語法 2
[public | private] declare function name lib "libname" [alias "aliasname"] [([arglist])] [as type]
declare 語句的語法包含下面部分:
部分 描述
public 可選的。用於宣告對所有模組中的所有其它過程都可以使用的過程。
private 可選的。用於宣告只能在包含該宣告的模組中使用的過程。
sub 可選的(但 sub 或 function 二者需選其一)。表示該過程沒有返回值。
function 可選的(但 sub 或 function 二者需選其一)。表示該過程會返回一個可用於表示式的值。
name 必需的。任何合法的過程名。注意動態連結庫的入口處(entry points)區分大小寫。
lib 必需的。指明包含所宣告過程的動態連結庫或**資源。所有宣告都需要 lib 子句。
libname 必需的。包含所宣告的過程動態連結庫名或**資源名。
alias 可選的。表示將被呼叫的過程在動態連結庫 (dll) 中還有另外的名稱。當外部過程名與某個關鍵字重名時,就可以使用這個引數。
當動態連結庫的過程與同一範圍內的公用變數、常數或任何其它過程的名稱相同時,也可以使用 alias。如果該動態連結庫過程中的某個字元不符合動態連結庫的命名約定時,也可以使用 alias。
aliasname 可選的。動態連結庫或**資源中的過程名。如果首字元不是數字符號 (#),則 aliasname 是動態連結庫中該過程的入口處的名稱。
如果首字元是 (#),則隨後的字元必須指定該過程的入口處的順序號。
arglist 可選的。代表呼叫該過程時需要傳遞的引數的變數表。
type 可選的。function 過程返回值的資料型別;可以是 byte、布林、integer、long、currency、single、double、decimal(目前尚不支援)、date、string(只支援變長)或 variant,使用者定義型別,或物件型別。
5樓:匿名使用者
c:\zzf\mydll應該是編譯好的動態連線庫,上面的兩名即為宣告用做輸入輸出的函式
6樓:棘棘芽
declare function outpot lib "c:\zzf\mydll" alias "outdata" (byval addr1%, byval odata%) as integer
我就以這一個講一下吧!
這個是引用dll的宣告方法
declare 宣告 ,關鍵字
function :是一個函式
outpot :是你呼叫時用的名字,可以自己定義
lib 關鍵字 ,後面是dll檔案的路徑 ,查詢方法是 ,如果是絕對路徑,直接查詢,如果只有檔名 查詢順序為:程式所在目錄-->系統目標/window ----> system --> system32
alias 關鍵字 後面 outdata,為dll記憶體放的名字,不能改
後面 addr1 odata 就是兩個引數 ,按值傳遞 integer 型
返回型別 integer
呵呵 應該能明白吧!
在vb裡寫declare function引用dll時,讓地址可選
7樓:匿名使用者
不行,這裡不能用變數,必須顯示寫好。
可以不寫目錄,只寫檔名,然後把dll和exe放在一起,或者把dll所在路徑放到path環境變數裡
vb為什麼總提示,編譯錯誤:使用者定義型別以及declare語句不允許作為物件模組的public成員
8樓:
新增模組 比如main.bas
api 函式放在模組main.bas中,這樣做法更好!!
public declare function findwindow lib "user32" alias "findwindowa" (byval lpclassname as string, byval lpwindowname as string) as long
9樓:沙慧月
private declare function findwindow lib "user32" alias "findwindowa" (byval lpclassname as string, byval lpwindowname as string) as long
把public改為private
關於vb中給變數賦值的語句,vb的賦值語句只能給變數賦值 這句話對嗎
灰原哀柯南君蘭 vb中的變數賦值語句是 a 1b a c b 1 如上,第一句的意思是把 1 賦值給a,第二句的意思是把 a 的值賦給 b 也就是b 1,最後ba b 1 的值賦 c c 2 拓展 vb中定義變數的語句如下 dim 變數名 as 資料型別 如 dim s as integer 定義一...
vb程式設計中關於inputbo函式
刺友互 1 開啟一個excel的檔案,在 中輸入簡單的 比如衣服輸入資料的 2 接著,滑鼠左鍵單擊 開發工具 選單標籤,在vba控制元件下拉選單中,並選擇表單按鈕控制元件。3 然後,在 中繪製出按鈕控制元件,並修改按鈕控制元件名稱,比如輸入名稱,並滑鼠左鍵單擊 檢視 按鈕。4 接著,在彈出的在 視窗...
vb中關於16進位制的兩個問題,在VB中16進位制常量表示方法
1.末尾的 表示該數值是一個長整型數值,否則位數不夠可能會被認為是integer.例如 hff h000000ff 2.vb不認識 0x的寫法,但常量的值是一樣的. 雁西樓 h開頭指出這是一個十六進位制表示的數,而結尾使用 表示這是一個long型別的數.h1和 h1 的值是相等的,但資料型別是不一樣...