vb編寫dll組建,並在asp中呼叫的例子

2021-04-12 19:05:08 字數 4294 閱讀 1517

如何把asp編寫成dll

動手寫個小組件(元件入門)

主題下面,我們會來編寫乙個非常簡單的元件,重點是知道怎樣開發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:/wwwroot/example1/example1.dll

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

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

vb製作dll供asp呼叫

啟動vb6.0,新建 active dll工程。單擊 工程 引用,選擇 microsoft active server pages object library 和 microsoft activex data objects 2.1 library 兩項。將類模組的名稱改為dcss.將工程的名稱 ...

在vb,vc中呼叫vb編寫的DLL

假設用vb編寫了乙個activex 元件,名稱為bioxsend,裡面生成乙個類test,類裡面有乙個方法hello 並且已經在電腦上註冊,下面分別描述怎樣在vb和vc中呼叫。1.vb呼叫 1 方法1 直接在project reference裡引用該dll,然後在使用時宣告就可以了,如下 dim a...

使用VB編寫純ASP程式

前幾天大哥對我說,使用asp真麻煩,編譯環境實在是差勁,他總是在vb裡面寫好除錯好 然後在把 貼上到asp程式中,為此,我在這提出乙個解決之道。使用vb接替asp所有的物件,在vb中編寫純粹的asp程式。下面是詳細的步驟 1。在vb中新建乙個activex dll.其中那些命名專案 類的過程我就省略...