因為近期問的網友比較多,就簡單整理出來一個,有問題可以透過評論
1、新建DLL
開啟VB6-->檔案-->新工程-->選擇ActiveX DLL-->確定
2、將預設工程、類別重命名
工程重新命名:工程-->工程1 屬性(此名稱對應窗體內工程項目名稱)-->在開啟對話方塊中將「工程名稱」重新命名為ASP2DLL(當DLL元件在系統中註冊後,在asp中預設的呼叫方法是「工程名.類別名稱」)-->確定
類別重命名在屬性視窗中將名稱重新命名為Demo
3.定義ASP基本對象
新增模組:工程-->新增模組-->選擇「模組」-->打開
重新命名模組:工程資源管理器-->模組--Module1-->在屬性視窗中將Module1重新命名為“ASPMod”
新增模組程式碼,此段程式碼幾乎適用於所有使用vb封裝的asp DLL元件中,其中的ASP2DLL變更為工程名稱或在呼叫時保持一致即可,程式碼如下:
複製代碼代碼如下:
Public objContext As ObjectContext
Public Application As ASPTypeLibrary.Application
Public Server As ASPTypeLibrary.Server
Public Session As ASPTypeLibrary.Session
Public Response As ASPTypeLibrary.Response
Public Request As ASPTypeLibrary.Request
Public Sub ASP2DLL_Initialize()
On Error Resume Next
Set objContext = GetObjectContext
Set Application = objContext.Item("Application")
Set Server = objContext.Item("Server")
Set Session = objContext.Item("Session")
Set Request = objContext.Item("Request")
Set Response = objContext.Item("Response")
End Sub
Public Sub ASP2DLL_Terminate()
On Error Resume Next
Set Application = Nothing
Set Server = Nothing
Set Session = Nothing
Set Request = Nothing
Set Response = Nothing
Set objContext = Nothing
End Sub
Public Function Eval(ByRef strEval)
Dim EvalObject As New ScriptControl
EvalObject.Language = "VBScript"
Eval = EvalObject.Eval(strEval)
Set EvalObject = Nothing
End Function
4.儲存新建立的DLL
文件-->保存工程,一路確定下來,將模組、類別模組、工程文件全部保存在一個資料夾下
5.類別模組中呼叫ASP對象
工程資源管理器-->類別模組-->雙擊Demo切換到Demo類模組程式碼編輯器,貼上程式碼,初始化類別呼叫及類別銷毀,程式碼如下:
複製代碼代碼如下:
Private Sub Class_Initialize()
ASP2DLL_Initialize
End Sub
Private Sub Class_Terminate()
ASP2DLL_Terminate
End Sub
至此,一個基本的DLL框架結束,下面可以根據自己需要去完善所需封裝的函數了。
6.新建立一個測試函數
在Demo類別模組下貼上以下兩段測試函數。
複製代碼代碼如下:
Public Sub hello()
Response.Write ("Hello World!")
Exit Sub
End Sub
7.編譯生成DLL
檔案-->產生ASP2DLL.dll-->選擇工程所在資料夾確定,ok,至此如果沒有錯誤訊息提示的話,則證明dll元件已編譯成功。
8、註冊、卸載組件
在ASP2DLL.dll元件所在目錄中創建
“註冊.bat”批次文件,輸入:
複製代碼代碼如下:
iisreset/stop
regsvr32/s ASP2DLL.dll
iisreset/start
“卸載.bat”批次文件,輸入:
複製代碼代碼如下:
iisreset/stop
regsvr32 /u /s ASP2DLL.dll
iisreset/start
雙擊運行註冊.bat,成功註冊會提示:“ASP2DLL.dll 中的DllRegisterServer 成功。”
9.在ASP程式中呼叫剛封裝好的DLL元件及測試函數
步驟2中我們知道“當DLL元件在系統中註冊後,在asp中預設的呼叫方法是'工程名.類別名稱'”,因此,應這樣建立物件:set Obj = Server.CreateObject("工程名稱.類別名稱") ,代碼如下:
複製代碼代碼如下:
<%
Dim ASP2DLL
Set ASP2DLL = Server.CreateObject("ASP2DLL.Demo")
ASP2DLL.hello()
Set ASP2DLL = Nothing
%>
10、包含工程文件等相關所有內容打包下載連結(20110221更新下載連結) 打包下載
在編譯DLL時需要注意的幾點:
1.避免使用vb保留關鍵字作為函數或變數名稱;
2、正規、部分Vbscript函數如Eval需要載入「工程-->引用-->Microsoft Script Control 1.0」及「Microsoft VBScript Regular Expressions 5.5」;
3.封裝並不能帶來本質上的速度提升,虛擬主機、遠端伺服器需有元件註冊權限;
4.對已經存在的元件名稱或修改了dll文件,必須先停止IIS,再重啟IIS註冊dll元件;
5、VB6 SP6精簡綠色版下載鏈接
原文來自:?cateID=20 感謝作者的辛勤勞動,東西太好了,就是網站訪問太慢了