阿里西西原創-asp封裝dll教程

來源:互聯網
上載者:User
阿里西西|教程|原創|asp封裝

阿里西西原創視頻教程下載地址:http://www.alixixi.com/Down/eBook/vb/2007/2007122192320.html

由本人第一次嘗試製作的錄影視頻教程,由於電腦速度較慢,播放時間較慢,請諒解。

本錄影講解最基礎的VB封裝ASP代碼產生DLL的製作教程,適合初級學習者參考。也是本人學習VB製作ASP組件的第一個嘗試,錄影基本成功。

用vb編寫asp組件(dll)樣本

下面,將示範如何使用vb製作asp的dll組件...

1. 啟動你的vb,選擇activex dll表徵圖,然後在點擊菜單的工程>>引用,接
著在彈出的"引用"視窗從中選擇
microsoft active server pages object library.

2. 給工程和類重新命名,在asp中調用時,就全靠它了^_^!我們的工程名改
為aspdll,類名為demo.在asp中調用的方法是:
set objreference = server.createobject("工程名.類名")
本例調用的相應代碼如下:
set objreference = server.createobject("aspdll.demo")
調用的方法和一般常見的,比如fso等組件的方法一模一樣.
心動了吧,呵呵,下面我們繼續....

3. 接著,我們開始編寫代碼,開啟我們剛才建立工程類視窗,第一步,先聲
明我們要用到的變數.主要是在vb聲明替代asp幾大對象的變數名,定義這
asp的幾大對象後,我們就可以像在asp環境中調用類似request,server等
這樣的幾大對象了.(聲明的變數名完全可以和asp對象名一樣)代碼如下:

'**********************************************
private mys criptingcontext as s criptingcontext
private myapplication as application
private myrequest as request
private myresponse as response
private myserver as server
private mysession as session
'**********************************************

4. 聲明完變數後,我們必須在類中寫onstartpage子函數.本函數的作用是
當使用者訪問一個帶有本組件的asp檔案時,iis就會把s criptingcontext傳
送給我們vb組件對象.這個s criptingcontext包括了全部的asp方法和屬性
.這樣,就使得我們有能力訪問所有asp的對象.代碼如下:

'*****************************************************************
public sub onstartpage(passeds criptingcontext as s criptingcontext)
set mys criptingcontext = passeds criptingcontext
set myapplication = mys criptingcontext.application
set myrequest = mys criptingcontext.request
set myresponse = mys criptingcontext.response
set myserver = mys criptingcontext.server
set mysession = mys criptingcontext.session
end sub
'*****************************************************************

通過上面的函數,我們在asp中調用本組件後,上面的幾大對象就完全可以
像平時我們在asp使用一樣了,舉個例子:

在asp中實現接收提交的表單值並輸出螢幕:

<%
formvalue=request.form("username")
response.write ("你提交的使用者名稱是"&myformvalue&",歡迎您!")
%>

在vb中實現方法是:

formvalue=myrequest.form("username")
myresponse.write ("你提交的使用者名稱是"&myformvalue&",歡迎您!")

5. 相對應於onstartpage函數,我們還要編寫一個關閉onstartpage中對象
的onendpage函數,代碼如下:

'*********************************
public sub onendpage()
set mys criptingcontext = nothing
set myapplication = nothing
set myrequest = nothing
set myresponse = nothing
set myserver = nothing
set mysession = nothing
end sub
'********************************

6.通過編寫上面的代碼,我們在vb中編寫asp組件執行個體的環境已經具備了,
下面,我就嘗試寫兩個與asp中基本相類似的函數,也就是說,關鍵部位就在
這裡了,你完全可以把你所有的asp源碼封裝在這裡...

先寫個最簡單的輸出螢幕資訊函數:
'********************************************
public sub welcomeinfo()
myresponse.write ("阿里西西_web開發,歡迎訪www.alixixi.com!")
end sub
'********************************************

再寫個帶參數傳遞及顯示now()現在時間的函數:
'**********************************
public sub setinfo(content as string)
myresponse.write content & "<br>"
myresponse.write "現在的時間是:" & now()
end sub
'**********************************

通過上面的asp代碼執行個體,你會發現其實這和asp源碼基本沒有區別^_^

7. 好了,整個類就編寫完了,我們開始打包封裝成dll.我們先儲存工程,
這裡我們儲存到e:\vbdll,接著選擇菜單上的檔案>>產生aspdll.dll,很
快的dll組件就封裝並產生完畢了.

8. 產生dll檔案後,我們開始調試和使用.在系統運行欄輸入cmd,進入dos
命令列狀態,我們要註冊剛才產生的dll組件,註冊方法是可以直接輸入
regsvr32 e:\vbdll\aspdll.dll ,為了安裝方便,你同時可以寫個批處理
檔案,這裡不一一舉例了...好,註冊成功!

9.註冊完dll組件後,我們針對剛才的組件,按照上面介紹過的方法編寫一
個asp檔案來調試.代碼如下:

<%
set redll = server.createobject("aspdll.demo")
redll.welcomeinfo
response.write "<hr />"
redll.setinfo("傳遞參數到伺服器組件,並傳回值及當前日期now()!")
response.write "<hr />"
set redll = nothing
%>
在iis中開啟此檔案,螢幕顯示:

阿里西西_web開發,歡迎訪www.alixixi.com!
------------------------------------------------------------
傳遞參數到伺服器組件,並傳回值及當前日期now()!
現在的時間是:xxxx-xx-xx-xx:xx:xx



聯繫我們

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