国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

如何用VB6寫COM組件(轉)

2024-07-21 02:15:40
字體:
來源:轉載
供稿:網友

   所幸的是,我們可以用com組件來在最大程度上擴展asp的功能。你可知道,任何可以用諸如vb,vc和vj以及其它的一些程序語言所寫出來的東西,都可以被應用到你的網站的開發中去,這就是com(組件對象模型)。com能夠用來編寫能夠被asp所調用的對象。當在vb等編程環境中完成了組件的編制后,就可以放在asp頁面中被asp所調用了。在這篇文章中,我們將看到如何使用vb6來編寫一個com對象,如何將其注冊在服務器上,并在asp頁面中對其進行調用。但在開始之前,讓我先來簡單的介紹一寫關于com的小知識。

   com對象通常表現為一個.dll文件,是一個編譯好了的可執行程序。這意味著com的運行速度要比純asp代碼要快的多。在調用com對象之前,必須在運行iis服務器的機器上對其進行注冊,而且不能通過asp代碼來注冊com組件,這也就是說你必須有對服務器的使用權限。

   現在來看一看我們要實現的任務:我們需要創建一個組件,當你對它傳遞一個年份的時候,它能夠告訴你這一年是否為閏年。當然,這個任務可以用vbscript來實現的。這兒是用這個簡單的例子,只是為了程序的簡便起見,從而能夠把更多的注意力放在如何創建組件以及如何同asp進行交互上面。實際上如同上面所說的那樣,你可以使用vb的任何功能來創建這個組件。

   首先要做的當然是編寫activex dll組建,至于到底如何在asp中調用它,我們會在后面提及。打開visual basic,一個對話框會提示你選擇一種新建工程類型,在這兒當然選擇“activex dll”。

   如果工程瀏覽器沒有被打開,可以通過選擇菜單欄上面的“視圖|工程瀏覽器”來打開它。如果屬性窗口也沒有打開,同樣的方法,可以打開屬性窗口。

   現在在工程瀏覽器中點擊project1,然后可以在屬性窗口中看到工程的name 屬性為project1,把它改為checkyear。當然如果你很懶的話,你也可保留這些缺省的設置,只需在后邊在asp中調用它的時候,也使用相應的工程名和類名就好了。

   現在在工程中,已經預建了一個缺省的類,你可以按你自己的喜好來重新對其命名。在這兒把類命名為leapyear。

   在類中填寫入如下的代碼:

   option explicit

   '用來判斷一個年份是否為閏年的函數

   public function isleapyear(yr as variant) as boolean

   '如果年份能夠被4整除并且不能被100整除,或者能夠被400整除

   '那么它就是閏年

   if (yr mod 4 = 0 and yr mod 100 < > 0) or yr mod 400 = 0 then

   isleapyear = true

   else

   isleapyear = false

   end if

   end function

   上面就是所需要的全部代碼了,其實很簡單。下面所要做的,就是把它編譯成一個dll文件。在“文件”菜單中選擇“建立checkyear.dll...”,再選擇要文件要保存的路徑。一般的,可以在在服務器上的inetpub目錄下面建一個server components目錄,專門用來存放所有用于asp中的組件。但這不是必須的,無論你把dll文件保存在什么地方,在編譯的過程中,編譯程序都會自動的在系統中對組件進行注冊。
如果你的vb和web服務器不是在一臺電腦上,那么在把dll文件拷貝到服務器上后,如果要讓組件能夠被使用,就必須手工對其進行注冊。

   首先你需要把.dll文件從你開發它的機器上,發送到你的服務器上。一般在www服務器上可以為所有的為asp寫的組件建立一個目錄,把那個.dll文件拷貝到那個目錄中。比如在inetpub下建立一個server components目錄。在完成拷貝后,就可以運行regsvr32.exe來注冊這個組件了。在“開始”菜單中選這“運行”,然后在“運行”對話框中輸入regsvr32 和要注冊的組件的名稱和其完整路徑。例如:

   regsvr32 "c:inetpubserver componentsmycomponent.dll"

   就這么簡單,在注冊成功之后,你會得到一個成功注冊的信息。然后,你就可以在asp頁面中引用這個com對象了。當然,要完成這些你需要有服務器的訪問權限,你可以直接在服務器上注冊或者通過諸如pcanywhere之類的軟件實現遠程注冊。

   然后,我們就可以在asp中調用這個組件了。建立一個asp頁面,并添入下面的代碼:

   < % option explicit

   dim ocheckyear

   dim isleapyear

   dim year

   year = 1900 '用來檢測組件的年份

   '建立一個對剛才那個組件的引用

   set ocheckyear = createobject("checkyear.leapyear")

  '調用組件中的isleapyear函數,并報存結果

   isleapyear = ocheckyear.isleapyear(year)

   '清除對組件的引用,好的編程習慣

   set ocheckyear = nothing

   % >

   < html >

   < head >

   < title >例子< /title >

   < /head >

   < body >

   < %

   '打印輸出

   if isleapyear = true then

   response.write "< p >< b >" & year & "< /b >是閏年< /p >"

   else

   response.write "< p >< b >" & year & "< /b >不是是閏年< /p >"

   end if

   % >

   < /body >

   < /html >

   代碼很簡單,唯一需要解釋的,就是在asp中如何建立對自建對象的引用。它的語法是:createobject("projectname.classname")。你應該還記得吧,在前面我們把工程命名為checkyear而把類命名為leapyear,因而在這兒的語句就是:createobject("checkyear.leapyear")。一旦你建立了對對象的引用,你就可以在asp頁面中訪問其所有的公有元素了。剩下的,就如同調用其它任何asp內置對象一樣簡單了。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嵊州市| 林甸县| 东莞市| 通辽市| 万全县| 临泉县| 永安市| 呼伦贝尔市| 临桂县| 甘泉县| 淮阳县| 洛浦县| 济源市| 江孜县| 荥阳市| 张掖市| 黔江区| 正安县| 安龙县| 唐河县| 淮阳县| 临汾市| 景德镇市| 临湘市| 渭源县| 奉贤区| 海兴县| 内黄县| 灵寿县| 南平市| 长汀县| 仪征市| 河西区| 灵宝市| 托克逊县| 苍梧县| 乳源| 浮梁县| 濉溪县| 马山县| 靖宇县|