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

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

VBCOM基礎(chǔ)講座之ActiveXEXEs

2019-11-18 17:54:43
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
到現(xiàn)在為止,本教程一直討論基于ActiveXDLLs中的類的內(nèi)容,但是沒(méi)有一本教程不說(shuō)明與DLL相似的ActiveXEXEs。

  所以,想在這里實(shí)際編寫一個(gè)ActiveXEXE工程。事實(shí)上,它和ActiveXDLL沒(méi)有太大的區(qū)別,甚至沒(méi)有區(qū)別。在啟動(dòng)VisualBasic后選擇"ActiveXEXE"就可創(chuàng)建,然后像以前一樣構(gòu)造自己的類。

-align="right">->->->  但這里不想再作更詳細(xì)的討論,因?yàn)锳ctiveXEXE和ActiveXDLL除了在運(yùn)行時(shí)有一些微小區(qū)別外,其他都相同。

  它們的區(qū)別首先表現(xiàn)在它們的"進(jìn)程空間"的不同。所謂"進(jìn)程空間"是用于運(yùn)行、處理和存取的一塊計(jì)算機(jī)內(nèi)存。任何Windows程序,如MicrosoftWord等,都有自己的"進(jìn)程空間",它很像程序的桌面那樣。

  當(dāng)使用ActiveXDLLs工程運(yùn)行時(shí),DLL是在使用它的程序的進(jìn)程空間中運(yùn)行的,而ActiveXEXE是在進(jìn)程空間外面工作的。但是,ActiveXEXE還有自己的"桌面"。這究竟如何理解呢?

  假如,ActiveXDLL變得不穩(wěn)定或意外受損時(shí),使用它的應(yīng)用程序常常出現(xiàn)藍(lán)屏的死機(jī)現(xiàn)象,而在EXEs中卻不會(huì)發(fā)生,因?yàn)樗凶约旱?進(jìn)程空間",即使被破壞,也僅僅是桌面受損,當(dāng)然用戶程序應(yīng)該很好地去修復(fù)它。

  其次,它們的區(qū)別還表現(xiàn)在裝載的速度上。由于DLL是直接裝載到已存在的進(jìn)程空間,所以它的速度非常快。而EXEs由于還要分配自己的進(jìn)程空間,所以速度上相對(duì)慢一點(diǎn)。

  上述兩點(diǎn)區(qū)別可以說(shuō)是它們真正的區(qū)別。

  總之,如果使用不同的Windows工具來(lái)實(shí)現(xiàn)相應(yīng)的ActiveX組件,那么相應(yīng)的工程類型就應(yīng)該有所不同。例如,若使用MTS,則應(yīng)創(chuàng)建DLL工程,若使用DCOM,則應(yīng)創(chuàng)建EXE工程。當(dāng)然,即使現(xiàn)在不理解這此縮寫字母的含義,我們也不必?fù)?dān)心。因?yàn)樗鼈兪轻槍?duì)高級(jí)用戶的,并用于COM遠(yuǎn)程的工具組件。以后有機(jī)會(huì)再來(lái)給出相應(yīng)的教程。

  這里再來(lái)分析第二點(diǎn)的區(qū)別。

  如果現(xiàn)在需要?jiǎng)?chuàng)建這樣的一個(gè)程序,它不斷地檢測(cè)一個(gè)數(shù)據(jù)庫(kù)是否有什么改變。那么我們想到的是在程序中使用一些"timer"(計(jì)時(shí)器),每隔10分鐘激發(fā)一次并檢測(cè)該數(shù)據(jù)庫(kù)。但問(wèn)題來(lái)了,在該進(jìn)程空間的其他所有代碼都要被停止運(yùn)行直至數(shù)據(jù)庫(kù)檢測(cè)完畢。

  而ActiveXEXEs偉大之處,就在于它有自己的進(jìn)程空間。所以在其中添加的計(jì)時(shí)器也只會(huì)工作在自己的進(jìn)程空間中而不會(huì)影響其他使用它的程序。也就是說(shuō),對(duì)于前面的工程來(lái)說(shuō),若使用ActiveXEXE來(lái)檢測(cè)數(shù)據(jù)庫(kù),則不會(huì)停止其他使用它的程序的運(yùn)行;即使需要從其他程序中返回一個(gè)消息,也可以通過(guò)其他事件而獲得。

  需要說(shuō)明的是,運(yùn)行代碼遠(yuǎn)離正規(guī)程序而通過(guò)事件與使用的應(yīng)用程序會(huì)話的方法稱為"異步處理"。通常當(dāng)需要對(duì)e-mail或數(shù)據(jù)庫(kù)作定期檢查時(shí),或當(dāng)運(yùn)行一個(gè)長(zhǎng)的報(bào)表以及計(jì)算大的統(tǒng)計(jì)數(shù)據(jù)時(shí),我們就需使用這種異步處理方式。

  不怕你驚訝的話,我們可以將前面論述的內(nèi)容總結(jié)成這樣的一句話:

  "ActiveXDLLs是在進(jìn)程內(nèi)運(yùn)行,而ActiveXEXEs是在進(jìn)程外運(yùn)行"。

  好了,下一節(jié)將創(chuàng)建并測(cè)試一個(gè)自己的ActiveXEXE工程,并使用大家還不太熟悉的"異步處理"技巧。然后,提出一個(gè)稱為"實(shí)例"的有意義的概念,最后指明怎樣獲得更多的COM知識(shí)使自己達(dá)到一個(gè)新的水平。->


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 锡林郭勒盟| 禹州市| 九龙县| 闽清县| 清苑县| 峨眉山市| 长葛市| 巴南区| 吴旗县| 锦屏县| 甘孜县| 昭平县| 柯坪县| 南丰县| 淮滨县| 沙洋县| 武清区| 屏山县| 柳林县| 故城县| 西峡县| 云浮市| 芦溪县| 华池县| 聂拉木县| 龙江县| 鹤岗市| 苍南县| 共和县| 九龙县| 扶余县| 定襄县| 青浦区| 内丘县| 大连市| 天祝| 始兴县| 灌阳县| 离岛区| 海城市| 武强县|