通過 VB5 建立 ActiveX DLL 檔案並用 ASP 調用一例

來源:互聯網
上載者:User
本例是通過VB5.0建立ActiveX DLL檔案,這個檔案類比了一個擲色子的過程。
    
建立一個工程,並雙擊建立工程視窗中 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>   

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.