通過VB6將ASP編譯封裝成DLL組件最簡(jiǎn)教程 附全部工程源文件
更新時(shí)間:2012年03月02日 00:34:15 作者:
因?yàn)榻趩柕木W(wǎng)友比較多,就簡(jiǎn)單整理出來一個(gè),有問題可以通過評(píng)論
1、新建DLL
打開VB6-->文件-->新建工程-->選擇ActiveX DLL-->確定

2、將默認(rèn)工程、類重命名
工程重命名:工程-->工程1 屬性(此名稱對(duì)應(yīng)窗體內(nèi)工程項(xiàng)目名稱)-->在打開對(duì)話框中將“工程名稱”重命名為ASP2DLL(當(dāng)DLL組件在系統(tǒng)中注冊(cè)后,在asp中默認(rèn)的調(diào)用方法是“工程名.類名”)-->確定

類重命名在屬性窗口中將名稱重命名為Demo

3、定義ASP基本對(duì)象
添加模塊:工程-->添加模塊-->選擇“模塊”-->打開

重命名模塊:工程資源管理器-->模塊--Module1-->在屬性窗口中將Module1重命名為“ASPMod”

添加模塊代碼,此段代碼幾乎適用于所有使用vb封裝的asp DLL組件中,其中的ASP2DLL更改為工程名或者在調(diào)用時(shí)保持一致即可,代碼如下:
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、保存新創(chuàng)建的DLL
文件-->保存工程,一路確定下來,將模塊、類模塊、工程文件全部保存在一個(gè)文件夾下
5、類模塊中調(diào)用ASP對(duì)象
工程資源管理器-->類模塊-->雙擊Demo切換到Demo類模塊代碼編輯器,貼上代碼,初始化類調(diào)用及類銷毀,代碼如下:
Private Sub Class_Initialize()
ASP2DLL_Initialize
End Sub
Private Sub Class_Terminate()
ASP2DLL_Terminate
End Sub
至此,一個(gè)基本的DLL框架結(jié)束,下面可以根據(jù)自己需要去完善所需封裝的函數(shù)了。
6、新創(chuàng)建一個(gè)測(cè)試函數(shù)
在Demo類模塊下貼上以下兩段測(cè)試函數(shù)。
Public Sub hello()
Response.Write ("Hello World!")
Exit Sub
End Sub
7、編譯生成DLL
文件-->生成ASP2DLL.dll-->選擇工程所在文件夾確定,ok,至此如果沒有錯(cuò)誤信息提示的話,則證明dll組件已編譯成功。
8、注冊(cè)、卸載組件
在ASP2DLL.dll組件所在目錄創(chuàng)建
“注冊(cè).bat”批處理文件,輸入:
iisreset/stop
regsvr32/s ASP2DLL.dll
iisreset/start
“卸載.bat”批處理文件,輸入:
iisreset/stop
regsvr32 /u /s ASP2DLL.dll
iisreset/start
雙擊運(yùn)行注冊(cè).bat,成功注冊(cè)會(huì)提示:“ASP2DLL.dll 中的 DllRegisterServer 成功?!?

9、在ASP程序中調(diào)用剛封裝好的DLL組件及測(cè)試函數(shù)
步驟2中我們知道“當(dāng)DLL組件在系統(tǒng)中注冊(cè)后,在asp中默認(rèn)的調(diào)用方法是‘工程名.類名'”,因此,應(yīng)這樣創(chuàng)建對(duì)象:set Obj = Server.CreateObject("工程名.類名") ,代碼如下:
<%
Dim ASP2DLL
Set ASP2DLL = Server.CreateObject("ASP2DLL.Demo")
ASP2DLL.hello()
Set ASP2DLL = Nothing
%>
10、包含工程文件等相關(guān)所有內(nèi)容打包下載鏈接(20110221更新下載鏈接) 打包下載
在編譯DLL時(shí)需要注意的幾點(diǎn):
1、避免使用vb保留關(guān)鍵字作為函數(shù)或變量名;
2、正則、部分Vbscript函數(shù)如Eval需要加載“工程-->引用-->Microsoft Script Control 1.0”及“Microsoft VBScript Regular Expressions 5.5”;
3、封裝并不能帶來本質(zhì)上的速度提升,虛擬主機(jī)、遠(yuǎn)程服務(wù)器需有組件注冊(cè)權(quán)限;
4、對(duì)已經(jīng)存在的組件名稱或者修改了dll文件,必須先停止IIS,再重啟IIS注冊(cè)dll組件;
5、VB6 SP6精簡(jiǎn)綠色版下載鏈接
原文來自:http://www.dlstu.cn/code/default.asp?cateID=20 感謝作者的辛勤勞動(dòng),東西太好了,就是網(wǎng)站訪問太慢了
打開VB6-->文件-->新建工程-->選擇ActiveX DLL-->確定

2、將默認(rèn)工程、類重命名
工程重命名:工程-->工程1 屬性(此名稱對(duì)應(yīng)窗體內(nèi)工程項(xiàng)目名稱)-->在打開對(duì)話框中將“工程名稱”重命名為ASP2DLL(當(dāng)DLL組件在系統(tǒng)中注冊(cè)后,在asp中默認(rèn)的調(diào)用方法是“工程名.類名”)-->確定

類重命名在屬性窗口中將名稱重命名為Demo

3、定義ASP基本對(duì)象
添加模塊:工程-->添加模塊-->選擇“模塊”-->打開

重命名模塊:工程資源管理器-->模塊--Module1-->在屬性窗口中將Module1重命名為“ASPMod”

添加模塊代碼,此段代碼幾乎適用于所有使用vb封裝的asp DLL組件中,其中的ASP2DLL更改為工程名或者在調(diào)用時(shí)保持一致即可,代碼如下:
復(fù)制代碼 代碼如下:
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、保存新創(chuàng)建的DLL
文件-->保存工程,一路確定下來,將模塊、類模塊、工程文件全部保存在一個(gè)文件夾下
5、類模塊中調(diào)用ASP對(duì)象
工程資源管理器-->類模塊-->雙擊Demo切換到Demo類模塊代碼編輯器,貼上代碼,初始化類調(diào)用及類銷毀,代碼如下:
復(fù)制代碼 代碼如下:
Private Sub Class_Initialize()
ASP2DLL_Initialize
End Sub
Private Sub Class_Terminate()
ASP2DLL_Terminate
End Sub
至此,一個(gè)基本的DLL框架結(jié)束,下面可以根據(jù)自己需要去完善所需封裝的函數(shù)了。
6、新創(chuàng)建一個(gè)測(cè)試函數(shù)
在Demo類模塊下貼上以下兩段測(cè)試函數(shù)。
復(fù)制代碼 代碼如下:
Public Sub hello()
Response.Write ("Hello World!")
Exit Sub
End Sub
7、編譯生成DLL
文件-->生成ASP2DLL.dll-->選擇工程所在文件夾確定,ok,至此如果沒有錯(cuò)誤信息提示的話,則證明dll組件已編譯成功。
8、注冊(cè)、卸載組件
在ASP2DLL.dll組件所在目錄創(chuàng)建
“注冊(cè).bat”批處理文件,輸入:
復(fù)制代碼 代碼如下:
iisreset/stop
regsvr32/s ASP2DLL.dll
iisreset/start
“卸載.bat”批處理文件,輸入:
復(fù)制代碼 代碼如下:
iisreset/stop
regsvr32 /u /s ASP2DLL.dll
iisreset/start
雙擊運(yùn)行注冊(cè).bat,成功注冊(cè)會(huì)提示:“ASP2DLL.dll 中的 DllRegisterServer 成功?!?

9、在ASP程序中調(diào)用剛封裝好的DLL組件及測(cè)試函數(shù)
步驟2中我們知道“當(dāng)DLL組件在系統(tǒng)中注冊(cè)后,在asp中默認(rèn)的調(diào)用方法是‘工程名.類名'”,因此,應(yīng)這樣創(chuàng)建對(duì)象:set Obj = Server.CreateObject("工程名.類名") ,代碼如下:
復(fù)制代碼 代碼如下:
<%
Dim ASP2DLL
Set ASP2DLL = Server.CreateObject("ASP2DLL.Demo")
ASP2DLL.hello()
Set ASP2DLL = Nothing
%>
10、包含工程文件等相關(guān)所有內(nèi)容打包下載鏈接(20110221更新下載鏈接) 打包下載
在編譯DLL時(shí)需要注意的幾點(diǎn):
1、避免使用vb保留關(guān)鍵字作為函數(shù)或變量名;
2、正則、部分Vbscript函數(shù)如Eval需要加載“工程-->引用-->Microsoft Script Control 1.0”及“Microsoft VBScript Regular Expressions 5.5”;
3、封裝并不能帶來本質(zhì)上的速度提升,虛擬主機(jī)、遠(yuǎn)程服務(wù)器需有組件注冊(cè)權(quán)限;
4、對(duì)已經(jīng)存在的組件名稱或者修改了dll文件,必須先停止IIS,再重啟IIS注冊(cè)dll組件;
5、VB6 SP6精簡(jiǎn)綠色版下載鏈接
原文來自:http://www.dlstu.cn/code/default.asp?cateID=20 感謝作者的辛勤勞動(dòng),東西太好了,就是網(wǎng)站訪問太慢了
您可能感興趣的文章:
- VB6中的LSet語(yǔ)句和RSet語(yǔ)句詳解
- VB6反編譯軟件VB RezQV2.4a 正式版注冊(cè)碼
- 讀取Access數(shù)據(jù)庫(kù)的vbscript代碼打包下載
- ACCESS的參數(shù)化查詢,附VBSCRIPT(ASP)和C#(ASP.NET)函數(shù)
- VB的TextBox文本框?qū)崿F(xiàn)垂直居中顯示的方法
- VB實(shí)現(xiàn)屏蔽文本框右鍵菜單的復(fù)制、粘貼等功能的方法
- VB讀取線程、句柄及寫入內(nèi)存的API代碼實(shí)例
- VB實(shí)現(xiàn)的倒計(jì)時(shí)類代碼詳解
- VB調(diào)用Word拼寫檢查功能實(shí)例
- VB6實(shí)現(xiàn)連接Access數(shù)據(jù)庫(kù)的ADODB代碼實(shí)現(xiàn)方法
相關(guān)文章
Asp函數(shù)介紹(37個(gè)常用函數(shù))
下面的函數(shù)是asp中經(jīng)常用的到呢,大家可以收藏一下經(jīng)常查詢下2008-11-11ReplaceSaveRemoteFile 替換、保存遠(yuǎn)程圖片 的代碼
ReplaceSaveRemoteFile 替換、保存遠(yuǎn)程圖片 的代碼...2007-09-09ASP.NET?Core?5.0中的Host.CreateDefaultBuilder執(zhí)行過程解析
通過Rider調(diào)試的方式看了下ASP.NET Core 5.0的Web API默認(rèn)項(xiàng)目,重點(diǎn)關(guān)注Host.CreateDefaultBuilder(args)中的執(zhí)行過程,主要包括主機(jī)配置、應(yīng)用程序配置、日志配置和依賴注入配置這4個(gè)部分,需要的朋友可以參考下2022-08-08Insert Date and Time into Access
Insert Date and Time into Access...2007-04-04ASP 快速執(zhí)行動(dòng)態(tài)網(wǎng)頁(yè)
ASP 能快速執(zhí)行你的動(dòng)態(tài)網(wǎng)頁(yè),但你還可以通過緊縮代碼和數(shù)據(jù)庫(kù)連接以使它們執(zhí)行更快。2009-01-01用ASP生成UTF-8網(wǎng)頁(yè)文件的兩種方法
用ASP生成UTF-8網(wǎng)頁(yè)文件的兩種方法...2007-07-07