如何把ASP編寫成DLL

2021-03-31 08:56:58 字數 4546 閱讀 7237

這篇文章主要是把asp**變成元件,開發者不僅是加快了asp的速度,而且也能保護自己的**.

下面,我們會來編寫乙個非常簡單的元件,重點是知道怎樣開發dll元件,而不是其複雜的**!這些都要靠你們自己以後的努力了.

伺服器端元件

首先,伺服器端的元件要有別於客戶端的元件.客戶端的元件是通過網路傳輸,依靠html來起作用.而且只能在ie上有用.但是伺服器端的元件是執行在伺服器端,它在伺服器上執行各種操作.因此,所有的瀏覽器都能享用,它依靠的是伺服器而不是瀏覽器.

當iis被請求執行乙個asp程式,它首先會在asp檔案中找到 <%%>標籤之間的**,並且執行它(也可以是之間的**).如果這個asp程式在先前被呼叫過,那麼它就會用記憶體中的編譯過的程式來向使用者返回html**,如果沒有,那麼它就重新編譯.這裡asp就比cgi多一點速度優勢,因為cgi是每乙個請求都使用乙個執行緒.這樣就大大消耗了伺服器的資源.

想不想你寫的程式自己就能在iis執行!?!現在你就行了!使用vb5(當然現在是vb6了),你就能建立dynamic linked libraries (dll 檔案),它能在iis上直接執行(如果有asp檔案來請求的話).

系統和軟體的要求

你需要乙個32位的作業系統來執行asp.當然你也得安裝iis或pws.我們下面的程式是在windows95+pws+vb5的環境下開發的.

我們開始吧

啟動你的vb,選擇activex圖示.這個圖示可以在新建工程找到!vb會提供乙個預設的工程名(project1)和類名(class1).我們會將這兩個名字都改掉.在改名之前,請首先確認我們擁有microsoft active server pages object library,它在我們的程式非常有用.從選單中選擇"工程",然後在其中選擇"引用",就會出現"引用"視窗

從中選擇microsoft active server pages object library.

給工程和類命名

現在我們來根據自己的愛好來為project1和class1來命名吧!給它們命名也是很重要的,我們以後會用這個工程名和類名來建立這個元件的例項!後面詳細介紹.

如何改名,我就不想多說了!

我們的工程名改為exmaple,類名為helloword

怎樣使用工程和類

現在我們有了我們自己的工程(example1)和類名(helloworld).以後我們就會在asp**中使用它們的名字來引用這個元件.在asp中我們就這樣引用,如下:

set objreference = server.createobject("projectname.classname")

對於我們工程的引用就是:

set objreference = server.createobject("example1.helloworld")

現在我們就能用objreference來呼叫我們在元件中所建立的函式,子程式.下面我們會來寫乙個sayhello的子程式, 我們執行它的**如下:

程式**:

<%

set objreference = server.createobject("example1.helloworld")

objreference.sayhello

%>

為了在helloword類中使用asp的方法,你必須在此類中寫乙個onstartpage

子函式.如下: 

程式**:

public sub onstartpage(passedscriptingcontext as scriptingcontext)

set myscriptingcontext = passedscriptingcontext

end sub

現在,無論什麼時候使用者訪問乙個帶有本元件的asp檔案,iis就會把scriptingcontext傳送給我們的物件請我們使用.這個scriptingcontext包括了全部的asp方法和屬性.實現上,這使得我們有能力訪問所有asp的物件.看下面的**:

程式**:

public sub onstartpage(passedscriptingcontext as scriptingcontext)

set myscriptingcontext = passedscriptingcontext

set myrequest = myscriptingcontext.request

set myresponse = myscriptingcontext.response

set myserver = myscriptingcontext.server

set mysession = myscriptingcontext.session

end sub

程式**:

private myscriptingcontext as scriptingcontext

private myrequest as request

private myresponse as response

private myserver as server

private mysession as session

使用asp的物件

我們的變數現在就能像標準的asp物件來使用了!比如,我們經常在asp中用request.form()來收集提交表單的資料.現在我們在我們的vb中實現這個功能,**如下:

用asp中實現:

程式**:

<%

mytempvariable = request.form("username")

response.write ("you entered "& mytempvariable & "as your user name")

%>

在vb中實現: 

程式**:

mytempvariable = myrequest.form("username")

myresponse.write ("you entered "& mytempvariable & "as your user name")

通過使用myresponse來代替response,我們能夠使用所有response的方法,當然,myresponse這個名字可以隨便來取,你甚至可以就取response.

另一件我們得注意的是,我們得在我們的建立的類中,寫上onendpage子函式,這個onstartpage是相反的!onstartpage是建立物件,onendpage是消毀物件.

程式**:

public sub onendpage()

set myscriptingcontext = nothing

set myrequest = nothing

set myresponse = nothing

set myserver = nothing

set mysession = nothing

end sub

sayhello方法

我們來建立乙個子函式,用於顯示"holle world".這個sayhello方法只是helloworld這個類中乙個子函式,我們以後會在asp中用以下的顯示這個方法

程式**:

<%

set objreference = server.createobject("example1.helloworld")

objreference.sayhello

%>

sayhello的程式,很簡單的!

程式**:

public sub sayhello()

myresponse.write ("hello world")

end sub

現在乙個小型的元件編寫完成,剩下的工作就是編譯這個元件,在"工程"選單中儲存它,取什麼名字都可以,我們用exmaple1.vbp吧! 然後就用在選單中選擇"make exmaple1.dll",將其編譯成dll檔案.乙個元件就真正完成了!

注意,編譯了此元件那麼你就得先把你的pws關掉,然後再編譯此元件.否則vb就會告訴你些元件在使用中.

在asp中使用我們的自己的元件.

當你更正了在編譯中的錯誤,成功地編譯了example1這個工程,現在你就得拿出你最喜歡的html編輯器來寫下下面的語句,儲存為asp檔案.

程式**:

<%

set objreference = server.createobject("example1.helloworld")

objreference.sayhello

%>

執行後即可看到結果:

hello world

註冊元件

如果你想和你的朋友,鄰居分享你的元件,那麼你就得在你的系統上註冊你的元件.我們一般使用regsvr32.exe來註冊元件.註冊後你的元件會出現在win95/win98的windows/system目錄中.下面是乙個註冊的例子:

regsvr32.exe c:/root/example1/example1.dll

在你的系統中,vb會自動給你註冊,所以你很少用到regsvr32.exe

我們這裡只是寫了乙個非常小的元件,你們可以寫好自己的更大的元件,而且還可以用vb中的很多控制項.

讓我們用元件來擴充套件我們的程式的功能吧!也希望多多的看到我們中國人的元件

如何把ASP編寫成DLL

這篇文章主要是把asp 變成元件,開發者不僅是加快了asp的速度,而且也能保護自己的 下面,我們會來編寫乙個非常簡單的元件,重點是知道怎樣開發dll元件,而不是其複雜的 這些都要靠你們自己以後的努力了.伺服器端元件 首先,伺服器端的元件要有別於客戶端的元件.客戶端的元件是通過網路傳輸,依靠html來...

利用Visual Basic把ASP編寫成DLL

這篇文章主要是為想將自己的asp水平提高的人寫的 把asp 變成元件,開發者不僅是加快了asp的速度,而且也能保護自己的 這篇文章寫出來,也是為了給想開發元件上一堂入門課 下面,我們會來編寫乙個非常簡單的元件,重點是知道怎樣開發dll元件,而不是其複雜的 這些都要靠你們自己以後的努力了.伺服器端元件...

如何用vc編寫dll檔案

如何用vc編寫dll檔案 動態連線庫最大的特點就是能節省磁碟空間.當多個程序共享同乙個dll的時候,記憶體中只有乙個dll的 通過對映來使各個程序得以呼叫.1.用vc建立乙個win32 dll 我們利用vc編寫dll有幾種方法.如果用vc建立乙個win32 dll 工程.那這個工程就應該只匯出c 的...