您現在的位置是:首頁 > 足球

vbRichClient,不得不說的VBVBA擴充套件庫

  • 由 BtOfficer 發表于 足球
  • 2022-08-11
簡介雖然,在VBVBA的IDE環境,引用該庫就可以F2檢視可用的內容(如下圖),但那個物件瀏覽器,實在是不符合BtOfficer的風格,估計大家去看,除了名字能臆想揣測一番外,也看不出啥名堂

如何在兩個視窗間切換

前言

新年伊始,儘管忙碌難得空閒,但許久未更新的狀態還是要活動起來。由於

VB/VBA更深層面的東西,需要依賴執行時擴充套件,才能講的更明白

,所以

該擴充套件(目前還在施工中)未向大傢伙釋出之前,主要還是圍繞VB/VBA周邊知識點來做文章吧。

前面在

嫌棄VB的IDE不行,那看看CodeSMART如何?

》《

點評下外掛CodeSMART 2013 for VB6,給大家做個參考吧

》和《

VB續命神器,ThunderVB讓VB寫彙編和C,關鍵還開源!

中分別給大傢伙介紹和點評了兩款重量級IDE外掛。對於IDE不夠現代的批評,相信這兩外掛可以給各位某些啟迪。

撇開VB/VBA技術實現的種種細節,

VB/VBA最重要的,並不在於程式設計帶給人以控制駕馭的快感,而在於功能的表達和快速輸出。因此,VB/VBA在靠近使用者端的工具屬性,往往比其他開發工具更明顯。

所以,要聊VB/VBA,就不得不聊VB/VBA

能用什麼

來幹什麼。

對於廣大VB/VBA使用者而言,要幹什麼從來不需要多言,用什麼和怎麼用,構建幹什麼的原材料才是重點。

所以,可用的控制元件和功能庫,可能比原理更重要!從關注BtOfficer網友的評論中,便可窺見一二。這不,最近有網友說

vbRichClient是一個重量級的VB/VBA功能擴充套件庫

,期望能夠介紹介紹。這的確是一個龐大的重量級VB/VBA功能擴充套件庫,以至於有超過4M的體積。該庫涉及功能眾多,尤其是對Sqlite資料庫支援的部分,被廣泛視為VB/VBA駕馭Sqlite的最佳路徑。

由於

該庫無官方文件

,使用起來難免讓人困惑。

那麼本篇就針對該庫(vbRichClient)做一個大致的介紹,以便各位網友使用。

一、vbRichClient概覽

vbRichClient,不得不說的VBVBA擴充套件庫

vbRichClient本尊頁面

1、庫的組成

該庫目前只有二進位制版本,一共5個DLL(如下圖所示),其中RC6。DLL是主庫,其他都是該主庫功能的輔助庫。

vbRichClient,不得不說的VBVBA擴充套件庫

vbRichClient的構成

2、該庫作者

該庫的作者是Olaf Schmidt,是個自然人,而非團隊。如果是資深的VB/VBA使用者,應該在某些VB交流論壇的早期帖文中,會經常見到該人的發帖和留言。在VB/VBA深一點應用主題下,表現得尤為活躍,但從其內容來看,BtOfficer認為遠不如某乎上的二流大佬們,而更像是一個業餘愛好者。所以,BtOfficer在此奉勸各位VB/VBA的愛好者們,不必太過悲觀,如果保持探索的熱情,你也會輕鬆擁有該庫的表現。

3、該庫的設計使用場景

作者在該庫的介紹頁面上說,開發

該庫的主要目的是從MS-COM依賴中解耦,而且是為了配合與VB相容的新編譯器,實現跨平臺。

是不是感覺很宏大,很遠景?

該庫本身還是VB6開發的

,有木有感到震驚?

可是,哥哥啊,

VB/VBA就是基於COM的,Win也是基於COM構築起來的,你卻要逃避,還要跨平臺,是不是搞暈頭了啊!

連那個基於FreeBasic的VisualFreeBasic也不敢這麼吆喝啊。

有時候真搞不明白,

BASIC這一脈發育的最充分的就是VB了

,為毛還有那麼多個體戶還在搗鼓類BASIC專案呢?有那時間,還不如細細地欣賞豐滿的VB!鋼鐵直男們,還可以去。NET的地界呀。當然,這難免屁股決定腦袋。

所以,對於該庫的設計目的,BtOfficer深表不相信啊!還不是懷疑。

4、授權

對於廣大VB/VBA使用者們,或許對於授權並不太關心,能一直免費用才是核心。不過版權意識不斷覺醒的今天,我們還是要多關注版權,尊重原創。

該庫在其官網對二進位制版本明確表示了免費,可以閉源用於商業專案。

在其提供的工具集中,也有_Library-Licenses文件。從中,我們可以發現很多有意思的事情,不過先來說該庫開源的事。

作者在2013年就擬打算以LGPL協議開源該庫,並於該年即在github上建立了該開源專案。

但不知何故,時至今日,除了繪圖部分的Demo和1個基於該庫的輔助庫外,遲遲未能開源。

vbRichClient,不得不說的VBVBA擴充套件庫

vbRichClient的開源進展

對於開源承諾,相信各位對於

Faker。js的作者

Marak刪庫一事有所耳聞。

在BtOfficer看來,開源是作者無私的表現,值得尊重。但開源承諾一經作出,就應當有約束力,而不能想收回就收回。因為,基於開源的其他勞動,也同樣值得尊重。

該庫作者在2013年於其官網上表示會在1。5-2年內開源該庫,然而在其正式的_Library-Licenses文字中,卻是用“in the next months”代替了“1。5-2年”的說法。如今

這個months已經達到了108數量級了,仍未開源

。或許,看到這裡,會有不少網友發難BtOfficer:別人即便不開源那也是別人的自由,至少別人貢獻了可供使用的資源出來,幫助了大傢伙。

如果有正確的版權意識,恰恰就不能這麼去思考。業內利用開源的噱頭大搞營銷,欺騙敲詐使用者的案例還不是少數。

BtOfficer一貫認為,如果作者認為自己的勞動是有價值的,不妨明碼標價,你情我願的,讓市場來檢驗自己的勞動價值。

如果作者的確抱著無私奉獻的精神,那麼承諾了開源,就應當遵守自己的承諾及時開源,更何況開源可以讓更多的人參與到專案的改進中來,才能真正長久地惠及使用者。

如果,承諾了開源,卻遲遲不見動靜,還在死命更新閉源庫的,那麼使用者們就該給自己留個問號了。

不過矛盾的是,至今該庫都未曾明示收費,是作者真的奉獻嗎?各位免費使用的,真的沒有風險嗎?在BtOfficer看來,

該庫最重要的三個功能方向(向量繪圖、Sqlite和網路)

都不是自己的,而是基於知名的開源專案。

為何該作者要承諾開源,而且還要在

github

上建個『假』的開源專案呢?因為他自己違反了別個的開源協議,有肉眼可見的法律風險。這麼說,或許大家應該明白了吧。對於一個維護近十餘年的專案,竟然無任何使用文件,也可以理解了吧。

至於免費使用該庫的使用者有無法律風險,為避免打消大家瞭解該庫的熱情,暫不討論。有興趣的,可自行去閱讀那些開源專案的協議吧。

總之,該庫的已知版本是可用的,而且作者也不會找使用者的麻煩。對於自產自用型使用者,可以不用考慮授權方面的風險。

5、最新版

不過批評歸批評,

這個庫的輪子還是蠻豐富的

,對於廣大VB/VBA使用者而言,

絕對是一個值得使用的庫。

最新版(6.0.9)更新於2021-10-31,

可見作者對於開源不上心,對於維繫潛在使用者還是蠻上心的。

但不得不說的是,該庫的最新版也是32位的,也未見對64位的相容支援。這意味著,

該庫無法支援64位VBA和VBS。

或許BtOfficer過於苛責了,但

無論怎麼樣,希望該庫能越來越完善,也希望作者相容VB6的新編譯器能夠儘早面世

(也就懶得搞執行時擴充套件了,哈哈)。

二、vbRichClient詳解

沒有使用文件,也沒有Demo,對於這樣一個

三缺二

(僅有庫本身)的佈局,叫人如何破?不過既然是用VB6寫的DLL,那就駕輕就熟了呀。

首先,沒加殼,也沒有任何抵抗措施。嗯,大家可以放心用,看來是BtOfficer小人心了。

雖然,在VB/VBA的IDE環境,引用該庫就可以F2檢視可用的內容(如下圖),但那個物件瀏覽器,實在是不符合BtOfficer的風格,估計大家去看,除了名字能臆想揣測一番外,也看不出啥名堂。

vbRichClient,不得不說的VBVBA擴充套件庫

如果圖方便的,可以直接引用後F2檢視

其次

,再來看看PE結構,雷打不動的4個匯出函式,一如VB通常的樣子。

vbRichClient,不得不說的VBVBA擴充套件庫

這貨就是ActiveXDLL啦,你看不是標準DLL不照樣牛逼

然後

,來看下用了那些資源(見下圖),不得不說事情開始變得有趣起來。

vbRichClient,不得不說的VBVBA擴充套件庫

這個和通常的VB6應用程式不一樣

再看下具體的函式(太多就不展開了),原本有趣的興頭就這麼掉了下來。或許正如作者自己所說,這是一個基於類的執行時擴充套件(如果有這個叫法的話)。作者並非專業碼手,這一點幾乎不用懷疑。既然,沒有找到想要的亮點,那就挑個亮點吧。

這個庫

最大的價值點在於,將知名的C開源庫整合編譯到1個VB可呼叫的動態連結庫(也即cairo_sqlite.dll)中,並緊跟開源專案的更新步伐。在繪相簿的基礎上,實現了一套自繪製控制元件。這在某種程度上,的確可以擺脫VB中那些拖拽的控制元件

,但作者在歷史更新日誌中始終沒提安全性。

如果自繪控制元件那麼容易就可以取代VB工具箱中的控制元件,那就不勞微軟持續更新到2021版了(詳見《

VB的SP6更新到2021版了,卻安裝不上?快來看這裡

》)。

自繪控制元件和自制編譯器一樣,表面上可以實現一定程度的自由,但投入力度帶來的完備性,很快就可以證明這種自由是一種自欺欺人。

至於,該庫的效能嘛(未實際測試,僅根據技術要素點初步判斷),繪圖、資料庫、網路層都是第三方C庫,效能肯定不會差,但從VB這個所謂的類再包一道,效能會損耗的很快。但以該作者駕馭VB的能力,折(she)耗應該不會很離譜,至少在VB應用程式中算佼佼者吧。

因此,該庫的技術水平甚至還不如前面介紹的兩款IDE外掛。但

該庫勝在拿來即是生產力

,因此在友好性層面上又遠超前兩款IDE外掛,

如果能夠相互結合

,應該算非常強大的VB擴充套件工具了。

最後,來看功能了。正如作者自己說,這對於普通使用者而言,可能會很大。看看內容一覽,你們覺得呢?

vbRichClient,不得不說的VBVBA擴充套件庫

有用沒用,客官們看了再說唄

這麼多內容,顯然沒法一一介紹了。網上也能搜到不少關於該庫的部分物件的使用教程,如果大家覺得不夠,歡迎評論區留言想了解的部分,BtOfficer將根據網友需求做進一步的應用解讀。

歡迎關注BtOfficer(收藏、點贊、關注+轉發)

。來都來了,更多關於VB/VBA的文章、頭條、問答,不去瞅一下嘛。

老鐵門,記得到時來圍觀即將到來的VB666啊!相信會更好地吸收已介紹工具集的優點,也能更好地服務於各位VB/VBA開發人士。

更多精彩仍在繼續哦(專欄文章將更系統,更全面),有嚴肅而枯燥的技術,也有輕鬆的嘮嗑,更有現成工具等你來拿,期待你的加入!

Top