- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) > ASP >
- 通過(guò)VB6將ASP編譯封裝成DLL組件最簡(jiǎn)教程 附全部工
1、新建DLL
打開(kāi)VB6-->文件-->新建工程-->選擇ActiveX DLL-->確定
2、將默認工程、類(lèi)重命名
工程重命名:工程-->工程1 屬性(此名稱(chēng)對應窗體內工程項目名稱(chēng))-->在打開(kāi)對話(huà)框中將“工程名稱(chēng)”重命名為ASP2DLL(當DLL組件在系統中注冊后,在asp中默認的調用方法是“工程名.類(lèi)名”)-->確定
類(lèi)重命名在屬性窗口中將名稱(chēng)重命名為Demo
3、定義ASP基本對象
添加模塊:工程-->添加模塊-->選擇“模塊”-->打開(kāi)
重命名模塊:工程資源管理器-->模塊--Module1-->在屬性窗口中將Module1重命名為“ASPMod”
添加模塊代碼,此段代碼幾乎適用于所有使用vb封裝的asp DLL組件中,其中的ASP2DLL更改為工程名或者在調用時(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
文件-->保存工程,一路確定下來(lái),將模塊、類(lèi)模塊、工程文件全部保存在一個(gè)文件夾下
5、類(lèi)模塊中調用ASP對象
工程資源管理器-->類(lèi)模塊-->雙擊Demo切換到Demo類(lèi)模塊代碼編輯器,貼上代碼,初始化類(lèi)調用及類(lèi)銷(xiāo)毀,代碼如下:
代碼如下:
Private Sub Class_Initialize()
ASP2DLL_Initialize
End Sub
Private Sub Class_Terminate()
ASP2DLL_Terminate
End Sub
至此,一個(gè)基本的DLL框架結束,下面可以根據自己需要去完善所需封裝的函數了。
6、新創(chuàng )建一個(gè)測試函數
在Demo類(lèi)模塊下貼上以下兩段測試函數。
代碼如下:
Public Sub hello()
Response.Write ("Hello World!")
Exit Sub
End Sub
7、編譯生成DLL
文件-->生成ASP2DLL.dll-->選擇工程所在文件夾確定,ok,至此如果沒(méi)有錯誤信息提示的話(huà),則證明dll組件已編譯成功。
8、注冊、卸載組件
在A(yíng)SP2DLL.dll組件所在目錄創(chuàng )建
“注冊.bat”批處理文件,輸入:
代碼如下:
iisreset/stop
regsvr32/s ASP2DLL.dll
iisreset/start
“卸載.bat”批處理文件,輸入:
代碼如下:
iisreset/stop
regsvr32 /u /s ASP2DLL.dll
iisreset/start
雙擊運行注冊.bat,成功注冊會(huì )提示:“ASP2DLL.dll 中的 DllRegisterServer 成功?!?
9、在A(yíng)SP程序中調用剛封裝好的DLL組件及測試函數
步驟2中我們知道“當DLL組件在系統中注冊后,在asp中默認的調用方法是‘工程名.類(lèi)名'”,因此,應這樣創(chuàng )建對象:set Obj = Server.CreateObject("工程名.類(lèi)名") ,代碼如下:
代碼如下:
<%
Dim ASP2DLL
Set ASP2DLL = Server.CreateObject("ASP2DLL.Demo")
ASP2DLL.hello()
Set ASP2DLL = Nothing
%>
10、包含工程文件等相關(guān)所有內容打包下載鏈接(20110221更新下載鏈接)
在編譯DLL時(shí)需要注意的幾點(diǎn):
1、避免使用vb保留關(guān)鍵字作為函數或變量名;
2、正則、部分Vbscript函數如Eval需要加載“工程-->引用-->Microsoft Script Control 1.0”及“Microsoft VBScript Regular Expressions 5.5”;
3、封裝并不能帶來(lái)本質(zhì)上的速度提升,虛擬主機、遠程服務(wù)器需有組件注冊權限;
4、對已經(jīng)存在的組件名稱(chēng)或者修改了dll文件,必須先停止IIS,再重啟IIS注冊dll組件;
5、下載鏈接
原文來(lái)自:http://www.dlstu.cn/code/default.asp?cateID=20 感謝作者的辛勤勞動(dòng),東西太好了,就是網(wǎng)站訪(fǎng)問(wèn)太慢了
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站