在ASP檔案中調用DLL的方法

來源:互聯網
上載者:User

動態聯結庫(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 TYPE="typelib" FILE="Path/mydll.dll" -->

'裝載 METADATA 標籤中指定的類型庫。 Path是mydll.dll在機器上存放的路徑

<html>

<head><title>在ASP檔案使用DLL</title></head>

<body>

<%

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 ’擲色子

%>

<form method="POST" action="dice.asp">

<p>當色子的面數為<input type="text" name="T1" size="5" value=<% = session("point") %>>時</p>

<p><input type="submit" value="擲色子" name="B1"></p>

</form>

<p>結果為:<% = dice1.Result %>點 </p> ‘返回結果

<%

Else

dice1.Maxpoint = Session("point")

%>

<form method="POST" action="dice.asp">

<p>當色子的面數為<input type="text" name="T1" size="5" value=<% = session("point") %>>時</p>

<p><input type="submit" value="擲色子" name="B1"></p>

</form>

<%

End If

%>

</body>

  以上代碼在WINDOWS NT4.0+SP3+IIS4.0+IE5.0+VB5.0上編譯運行通過,但還有不少的缺陷,但我的本意是向大家介紹如何在ASP中調用DLL,所以我沒有去完善它。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.