動態聯接庫(dll)是加快應用程式關鍵部分的執行速度的重要方法,但有一點恐怕大部分人都不知道,那就是在asp檔案也能通過呼叫dll來加快伺服器的執行速度,下面我簡單的介紹一下在asp檔案呼叫dll的步驟。
首先,必須得有dll檔案,本例是通過vb5.0建立activex dll檔案,這個檔案模擬了乙個擲色子的過程。
在vb5.0的環境下,新建乙個工程,並雙擊新建工程視窗中activex dll圖示,vb將自動為專案新增乙個類模組,並將該專案型別設定為activex dll。在屬性視窗將類模組的名稱屬性改為clsdice。從工程選單中,選擇工程屬性,將工程名稱改為mydll。從檔案選單中,選擇儲存clsdice,將類模組儲存為mydice.cls。新增以下**:
option explicit
private max, point as integer
public property get result() as integer
result = point
end property
public property get maxpoint() as integer
maxpoint = max
end property
public property let maxpoint(num as integer)
max = num
end property
public sub throw()
randomize
point = int(rnd * max) + 1
end sub
private sub class_initialize()
max = 6
end sub
這個類模組定義了clsdice物件的兩個屬性和乙個方法,這些屬性和方法模擬了擲色子的過程。其中maxpoint屬性表示色子的面數,加入property let語句將使客戶能修改色子的面數;result屬性表示最後擲出色子的點數;throw方法代表擲色子的動作;private sub class_initialize語句將色子的面數預設的設定為6面。
從檔案選單中,選擇生成mydll.dll並將它儲存到適當的地方。至此,我們就建立了乙個自己的dll檔案。
第二步要做的就是要在asp檔案中引用類clsdice。
asp(活動伺服器頁面active server pages)的所有**都是在伺服器上執行的,客戶只能檢視以html形式傳回的結果。它使用「<%」和「%>」標記來標識指令碼**,並不傳回客戶端,在**外部,使用html標記來標識內容。在下面dice.asp的**中使用了createobject函式建立了乙個clsdice物件例項,該物件來自於上面建立的activex.dll--mydll.dll檔案,下面的例子使用了vbscript指令碼語言。
'裝載 metadata 標籤中指定的型別庫。 path是mydll.dll在機器上存放的路徑
<%
on error resume next 『當程式出現意外錯誤時能繼續執行
if request.form("t1")="" then
session("point") = 6
else
session("point")=request.form("t1")
end if
'用session("point")來存放色子的面數
set dice1=server.createobject("mydll.clsdice")
'使用set語句建立dice1物件,其中mydll是上面建立dll檔案時的工程名稱(注意:不是檔案的名稱),clsdice為類模組的名稱。至此我們就可以用maxpoint,result和throw屬性(方法)來對dice1物件進行操作。
if request.servervariables("request_method")="post" then
dice1.maxpoint = session("point") 『設定色子的面數
dice1.throw 』擲色子
%>
結果為:<% = dice1.result %>點
『返回結果
<%
else
dice1.maxpoint = session("point")
%>
<%
end if
%>
在ASP檔案中呼叫DLL
動態聯接庫 dll 是加快應用程式關鍵部分的執行速度的重要方法,但有一點恐怕大部分人都不知道,那就是在asp檔案也能通過呼叫dll來加快伺服器的執行速度,下面我簡單的介紹一下在asp檔案呼叫dll的步驟。首先,必須得有dll檔案,本例是通過vb5.0建立activex dll檔案,這個檔案模擬了乙個...
在ASP檔案呼叫DLL
動態聯接庫 dll 是加快應用程式關鍵部分的執行速度的重要方法,但有一點恐怕大部分人都不知道,那就是在asp檔案也能通過呼叫dll來加快伺服器的執行速度,下面我簡單的介紹一下在asp檔案呼叫dll的步驟。首先,必須得有dll檔案,本例是通過vb5.0建立activex dll檔案,這個檔案模擬了乙個...
在lua中呼叫DLL
整整的花了乙個下午的時候,才在lua中呼叫了動態鏈結庫。比起其他指令碼語言,lua的呼叫方式算是比較繁瑣的,但是lua的程式設計思想非常的統一,即lua和c之間的傳值都是通過棧進行的,目前為止我還沒有深入的去了解這個 棧 但是這並不妨礙去使用 棧 當我們在乙個空的工程中寫下幾個c c 的函式,然後把...