VB到底支不支持指針?
一、誰說VB過時(shí)了?
1、不更新VB6,不代表不更新VBA,也不代表不更新VBS,更不代表VB就過時(shí)。
2、不更新,不代表不支持。微軟說了不準(zhǔn)VB6在Win上運(yùn)行了么?Win10上面躺起的VBA和VBS算什么?VB6不一樣跑的歡!VB的虛擬機(jī)仍然是系統(tǒng)級(jí)支持,因?yàn)閂B6早就是VBA了。難道微軟也不支持Office這顆搖錢樹了?
3、不更新,不代表沒有未來。VB一直都是微軟戰(zhàn)略級(jí)武器,從創(chuàng)業(yè)到稱霸,哪次缺了VB?《VB前傳,從教學(xué)到游戲,再到系統(tǒng),似乎每步都是精心設(shè)計(jì) 》了解下。VB緊隨微軟戰(zhàn)略升級(jí),人家1995年VB4.0走向VBA,就做好了退居幕后的打算。到2008年才宣布不再更新VB6,請(qǐng)細(xì)品!VB能做到沉默的大多數(shù),除了絕大部分用戶為非職業(yè)開發(fā)人員的因素外,也恰恰說明VB在非職業(yè)開發(fā)領(lǐng)域,是經(jīng)得住時(shí)間考驗(yàn)的。這和Office的戰(zhàn)略定位,是一致的,是匹配的。如果說VB是玩具、不夠?qū)I(yè)、沒有前途的,其實(shí)是在說Office是玩具、不夠?qū)I(yè)、沒有前途。VB在Office這塊,不是不進(jìn)化,而是確實(shí)沒有什么好進(jìn)化的了。
4、VBA也要被淘汰?開什么玩笑。VBA是IDE,那是人機(jī)交互,微軟迭代了幾十年的東西,是微軟的信仰。你說換掉就換掉?縱觀C/C++、C#、Python等,不封裝成二進(jìn)制,你想源碼級(jí)動(dòng)態(tài)交互式調(diào)試Office?VB6再差,不僅可封裝VBA,其IDE還可以源碼級(jí)動(dòng)態(tài)交互式調(diào)試Office。
5、到今天,VB6是不再更新了,仿佛停留在了32位機(jī)時(shí)代,曾經(jīng)很多靠VB6吃飯的人,如今單憑VB6很難再找到工作。但這對(duì)于一項(xiàng)可實(shí)施的技術(shù)而言,并不妨礙它繼續(xù)工作。所以傳言的落敗,不是指技術(shù),而是指就業(yè)機(jī)會(huì)的凋零。就VB而言,只要不用于糊口的工作,他們?nèi)匀皇亲烂鎽?yīng)用開發(fā)的一把好手。
二、VB不是多用于教學(xué),而是其本身就起源于教育早在1962年的DOPE時(shí),該語言就明確針對(duì)教學(xué),到后來的BASIC,更是有學(xué)生參與開發(fā)。噴高等院校VB計(jì)算機(jī)課的,顯然是不懂教育的,更不懂VB的簡(jiǎn)單易用。歷史上,VB曾受專業(yè)人士親睞,只是一門語言發(fā)展過程中必然的意外而已。試想,哪個(gè)開發(fā)組,不希望自己的產(chǎn)品能夠位列主流?哪個(gè)項(xiàng)目,在實(shí)施過程中沒有慣性?除了開發(fā)組的私心,更有微軟戰(zhàn)略上維護(hù)生態(tài)的使命。
試想,微軟要是在VB4.0就卡斷,是不是在給競(jìng)爭(zhēng)對(duì)手送分?所以在VB5.0,尤其在6.0(那時(shí),早就啟動(dòng).NET項(xiàng)目了),進(jìn)行了大量的完善工作。讓VB簡(jiǎn)單易用的同時(shí),也具有C那樣強(qiáng)大的能力。不僅與VC6共用一套編譯鏈接體系,VB里也處處都有C的影子。對(duì)數(shù)據(jù)庫、對(duì)網(wǎng)絡(luò)的支持自是不必說。最重要的,VB6在98年就能兼顧ANSI和Unicode內(nèi)核。吐槽VB A/U自動(dòng)轉(zhuǎn)換的人,應(yīng)該感謝這種前瞻性,否則NT2000時(shí),VB就死了。
VB在人類計(jì)算機(jī)歷史上,尤其是在計(jì)算機(jī)普及上,是功不可沒的。正是VB,才有今天的計(jì)算機(jī)教育的廣度和深度。計(jì)算機(jī)=BASIC=Windows,然后才是Linux和其他。從VB這兒畢業(yè)的,好多都是業(yè)界爺爺輩的。現(xiàn)如今,卻有很多孫子們,嘲弄”老掉牙“來彰顯自己的活力,不知?dú)v史會(huì)如何評(píng)判。就像今天很多人吐槽譚浩強(qiáng)的《C程序設(shè)計(jì)》,我只想說,你爽嘴的時(shí)候,看到年齡了嗎?
如今,VB退居Office背后,只不過回歸了其本來的屬性,她本就屬于廣大人民群眾。從入門學(xué)習(xí)而言,VB仍然是很好的選擇。入門非常容易,不僅有利于激發(fā)編程興趣,而且容易培養(yǎng)探索精神。其簡(jiǎn)單背后的復(fù)雜絕不亞于C,要是靜心深入學(xué)習(xí),她只會(huì)帶你走向更深的C和匯編。
三、指針并不稀奇,系統(tǒng)里處處都是指針哪一門開發(fā)語言沒有指針呢?有些可直接用(如C/C++),有些不能直接用(如VB),更有甚者不讓你用(如JAVA)。指針無非拿來操作虛擬內(nèi)存,操作虛擬內(nèi)存的途徑可多了。只不過明確指針的概念,有助于提高編碼的技巧性,當(dāng)然也可提示代碼性能。
VB6是支持指針的,只不過為了安全起見,藏起來了。如果深入了解VB,就可以使用指針,不僅高效,還會(huì)很安全。這也足以證明,VB的伸縮性和包容性。
1、VarPtr(StrPtr,ObjPtr,VarPtrArray)變量指針
2、GetMem4/PutMem4/Copymemory指針操作
3、ByRef傳遞指針
4、Variant的智能指針
5、Object的COM指針
6、AddressOf的函數(shù)指針
...
閱讀《變量,還有這些秘密 》了解變量的本質(zhì),為VB深入學(xué)習(xí)指針打個(gè)基礎(chǔ)。
閱讀《VB的任性,從Variant開始 》,了解C/C++中的智能指針在VB中安排。揭開VB變量里的秘密,讓指針開始顯形,為更深入探討VB指針提供指引。
閱讀《VB的天地,橫看成嶺側(cè)成峰 》,了解VB數(shù)值類型常有的誤區(qū),以及正確的打開姿勢(shì)。拋出8字節(jié)整數(shù)以及字符串、對(duì)象和數(shù)組等相關(guān)問題,有助于VB指針的實(shí)戰(zhàn)化。
點(diǎn)頭像加關(guān)注,更多VB指針技術(shù),等你來看。