匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 2 0 年前

如何將邏輯處理部份寫成元件,用ASP作為物件實體傳送?

問題如標題~我是使用DreamweaverMX2004會簡單的ASP

有沒有比較好學的方法來將 複雜的程式寫成元件,

和如何用asp去執行 元件???

拜託各位高手了.......

2 個解答

評分
  • Brian
    Lv 4
    2 0 年前
    最佳解答

    您會ASP的話,可以使用VB來撰寫元件會較容易入門,您可以先由簡單的小東西開始做起,例如下例一段ASP:Function ChkPassword(strUserID, strUserPwd)  .  .  .  If .... Then    ChkPassword = True  Else    ChkPassword = False  End IfEnd FunctionDim strUserID, strUserPwdstrUserID = Request("UserID")strUserPwd = Request("UserPwd")If ChkPassword(strUserID,strUserPwd) = True Then  Response.Redirect "Main.asp"Else  Response.Redirect "FailInLogin.asp"End If上述是一個簡單的登入檢查的 ASP 碼,如果把身份驗證的部份提出寫成元件,可以用VB開一個ActiveX DLL的Project,Project Name可以用系統名稱來命,比方就叫BIRDAPI,類別我們這裡就先用User(這裡類別的抽象化不容易解釋,建議您可以看一些物件導向概念的書),ChkPassword即為該類別中的一個method,回傳值為一個布林值。類別裡詳細的程式碼就只要改宣告部份(VB建議宣告型態),其它可以全部由ASP裡直接貼入:Public Function ChkPassword(Byval strUserID As String, Byval strUserPwd As String) As String  .  .  .  If .... Then    ChkPassword = True  Else    ChkPassword = False  End IfEnd Function再來編譯成機器編後即產生一個BIRDAPI.dll檔,而裡面含有一個Class "User",User裡又包含一個method "ChkPassword",將此dll用regsvr32.exe註冊至主機上,ASP部份如要引用只需改寫如下:Dim strUserID, strUserPwdDim objBIRDAPIstrUserID = Request("UserID")strUserPwd = Request("UserPwd")' 使用CreateObject 建立物件,傳入參數為類別名稱字串Set objBIRDAPI = Server.CreateObject("BIRDAPI.User") ' 使用時呼叫如下If objBIRDAPI.ChkPassword(strUserID,strUserPwd) = True Then  Response.Redirect "Main.asp"Else  Response.Redirect "FailInLogin.asp"End If' 用完後釋放資源Set objBIRDAPI = Nothing而如在編譯過後尚需做程式修改,在重新編譯時記得版本相容元件部份要選擇""與機器碼相容",對向為前次所編譯出來之dll檔(版本相容問題建議看一些VB元件設計和COM部份的書),主機上在新元件複製上去前,記得先用regsvr32.exe -U 反註冊舊版元件,不然將發生dll hell問題。

    參考資料: 自己
  • 寶島
    Lv 4
    2 0 年前

    寫元件是可以,但複雜多了。

    可不可以把它變含函數Include到您的ASP程式中?

還有問題?馬上發問,尋求解答。