Visual Basic

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. március 22-én felülvizsgált verziótól ; az ellenőrzések 14 szerkesztést igényelnek .
Visual Basic
Nyelvóra Eljárási , objektum orientált , komponens orientált , esemény orientált
A végrehajtás típusa Összeállította , értelmezte
Megjelent 1991
Fejlesztő Microsoft
Fájlkiterjesztés _ .bas, .cls, .frm, .vbp, .vbg
Kiadás Visual Basic 6.0 (1998 ) ( 1998 )
Típusrendszer Statikus gépelés , Erős gépelés , Dinamikus gépelés
Főbb megvalósítások Microsoft Visual Studio
Dialektusok Visual Basic alkalmazásokhoz , Visual Basic Script
Befolyásolva QuickBasic , BASIC
befolyásolta Visual Basic .NET , REALbasic , Gambas , Xojo , Basic4ppc
Weboldal msdn.microsoft.com/ru-RU/vstudio/ms788229.aspx
 Médiafájlok a Wikimedia Commons oldalon

A Microsoft Visual Basic a Microsoft Corporation által kifejlesztett  programozási nyelv és integrált szoftverfejlesztő környezet . A Visual Basic nyelv örökölte ősének, a sok nyelvjárással rendelkező BASIC nyelv szellemét, stílusát és részben szintaxisát. Ugyanakkor a Visual Basic egyesíti az objektumorientált és komponens-orientált programozási nyelvek eljárásait és elemeit . A VB IDE tartalmaz eszközöket a vizuális felhasználói felület tervezéséhez, kódszerkesztőt IntelliSense -sel és szintaktikai kiemeléssel, valamint eszközöket az alkalmazások hibakereséséhez.

A Visual Basic jó eszköz az adatbázis-alkalmazások gyors fejlesztéséhez (RAD) a Microsoft Windows család operációs rendszereihez . A környezettel együtt szállított számos kész komponens célja, hogy segítse a programozót egy üzleti alkalmazás üzleti logikájának azonnali fejlesztésében, anélkül, hogy a figyelmét a program indításához szükséges kód írására, az eseményekre való feliratkozásra és más, a VB által automatikusan megvalósított mechanizmusokra terelné.

A Visual Basic-et a komoly fejlesztők először a 3-as verzió megjelenése után ismerték fel. A végső elismerést a Windows teljes értékű programozási eszközeként az 5-ös verzió megjelenése jelentette. A Microsoft Visual Studio 6.0 részét képező VB6-os verzió valóban kiforrott és funkciókban gazdag termék.

Fejlesztési előzmények

Kiadási dátum Változat Leírás
1991. május 1.0 Visual Basic 1.0 Microsoft Windows rendszerhez . A QBasic szintaxist vették a nyelv alapjául , és az újítás, amely aztán nagy népszerűséget hozott a nyelvnek, a nyelv és a grafikus felület közötti kommunikáció elve volt. Ezt az elvet Alan Cooper ( Alan Cooper ) fejlesztette ki, és a háromlábú ( Ruby néven is ismert ) prototípusban valósította meg .
1992. szeptember 1.0 Visual Basic 1.0 DOS alatt . Nem volt teljesen kompatibilis a VB Windows verziójával, mivel ez volt a QuickBASIC következő verziója, és képernyőszöveg módban futott. Érdekes megjegyezni, hogy a csomag tartalmazott egy speciális segédprogramot, amely ennek a verziónak a projektjeit Visual Basic 1.0-s Windows-projektekké alakította át. A kódot a lehető legkompatibilisebbé tette a Windows-verzióval, átalakította az űrlapokat (bár az eredmény nem volt kielégítő a szöveges és grafikus mód eltérései miatt), és megjegyzéseket is tett a kódba a további fejlesztés érdekében.
1992. november 2.0 Visual Basic 2.0. A fejlesztői környezet könnyebben használható és gyorsabban működött. A Tulajdonságok ablak egy külön listába került. Forráskód kiemelés hozzáadva .
1993 3.0 A Visual Basic 3.0 Standard és Professional kiadásban jelent meg. Ezenkívül egy Access-adatbázisokkal való munkavégző motorral bővült a csomag .
1995. augusztus 4.0 A Visual Basic 4.0 olyan verzió volt, amely 32 bites és 16 bites Windows alkalmazásokat is tudott létrehozni. Ezenkívül lehetővé vált VB-ben osztályok írása, és a Visual Basic végre teljes értékű fordító lett , ami jelentősen megnövelte a program végrehajtásának sebességét. Az OLE -vezérlők (OCX) támogatása hozzáadva a régi VBX -vezérlők helyére
1997. február 5.0 Visual Basic 5.0 – ettől a verziótól kezdve lehetővé vált a hagyományos alkalmazások mellett saját COM-összetevők fejlesztése is . Egy ilyen komponens OCX fájlba fordításával és kézbesítésével lehetővé vált, hogy a vezérlőobjektumot ne csak a végfelhasználó , hanem más fejlesztők is megkaphassák, ami után integrálni tudták ezt az objektumot az alkalmazásaikba. Az integrált környezet P-Code és Native fordítókat tartalmaz. Az alkalmazásokat az MSVBVM50.DLL dinamikus könyvtárban megvalósított új virtuális gép hajtja végre. Szintén az idei év első negyedévében a Microsoft kiad egy terméket a Visual Basic 5 Control Creation Edition (VB5CCE) speciális kiadásában, amely kizárólag az ActiveX - vezérlők tervezésére specializálódott.
1998 közepe 6.0 Visual Basic 6.0  – Optimalizált virtuális gép működése, és átkerült az MSVBVM60.dll fájlba. Továbbfejlesztett natív fordítói teljesítmény. Új funkciók hozzáadva a karakterláncokkal és tömbökkel való munkavégzéshez. A nyelvnek ez a verziója a legújabb a klasszikus VB sorában. A Microsoft megváltoztatta a Basic család nyelvi szabályzatát, és a Visual Basic fejlesztése helyett egy teljesen új nyelvet, a Visual Basic .NET -et hoztak létre .
2002 7.0 A Visual Basic .NET első kiadása . A legfontosabb szolgáltatás az, hogy a kódot teljes mértékben a .NET-keretrendszer Common Language Runtime kezeli . Megszakadt visszafelé kompatibilitás a klasszikus Visual Basic-cal (lefagyva VB6-ként).
2003. április 7.1 A Microsoft frissítette a Visual Basic .NET-et, optimalizálta a fordítót. Megjelent a .NET Framework 1.1 frissített verziójával.
2005 8.0 A Visual Studio 2005 tartalmazza . .NET Framework 2.0 szükséges. A Visual Basic .NET 2003 kiadása után a Microsoft kihagyta a „.NET” előtagot a termék nevéből, és a következő verzió neve Visual Basic 2005.
2008 9.0 A Visual Studio 2008 része . .NET Framework 3.5 szükséges
2010 10.0 A Visual Studio 2010 része . .NET Framework 4 szükséges
2012 11.0 A Visual Studio 2012 része . .NET Framework 4.5 szükséges
2013 12.0 A Visual Studio 2013 része . .NET Framework 4.5.1 szükséges
2015 14.0 (nem jelent meg 13.0-s verzióként) A Visual Studio 2015 része . A .NET-keretrendszer frissítve a 4.6-os verzióra
2017 15.0 A Visual Studio 2017 része .

A Visual Basic 6.0-s verziójának megjelenése után a Microsoft fejlesztői jelentősen megváltoztatták a technológia fejlesztési irányát. A Visual Basic .NET nem teszi lehetővé a régi módon történő programozást, mert valójában ez egy teljesen más nyelv, ugyanaz, mint bármely más .NET platform programozási nyelve . A nyelv egyénisége, valamint előnyei (egyszerűség, programkészítés gyorsasága, kész komponensek könnyű kezelhetősége) .NET környezetben használva már nem olyan fontosak, mint korábban – minden a képességekre összpontosul. magának a .NET platformnak az osztálykönyvtáraiban. Jelenleg (2015 júniusában) a Visual Basic-ről kell beszélnünk, csakúgy, mint a nyelv klasszikus 4.0-6.0 változatairól, dialektusairól: Visual Basic for Applications (VBA) és Visual Basic Scripting Edition (VBScript), valamint a nyelvről. a .NET platform – Visual Basic .NET

2020 márciusában a Microsoft kijelentette, hogy támogatja a Visual Basic-et a .NET 5.0 Unified Platformban, de többé nem ad hozzá új funkciókat és nem fejleszti a nyelvet [1] [2] .

A nyelv elemei

Adattípusok

A Visual Basic változóit egy operátor deklarálja Dim, amelyet a név, majd a kulcsszó, Asmajd a változó típusa követ. Ha a típust kihagyjuk, akkor a kulcsszó Asnincs megadva, és a változó Variantként lesz deklarálva. Ha nem ad meg konstrukciót Option Explicita deklarációs részben, akkor nincs szükség a változók kifejezett deklarálására, és azok automatikusan létrejönnek az első használatkor. Ez a viselkedés a programvégrehajtás sebességének csökkenéséhez vezethet, mivel a nem deklarált változók Variant típusúak lesznek, valamint logikai hibákat okozhat, amelyek egy meglévő változó nevének helytelen bevitelével járnak, vagy az alkalmazás ütközésének kockázatához vezethet, amikor a hatókör a változó nem teljesen világos.

Dim strMessage As String 'karakteres típusú változó deklarációja Dim iProductCount As Integer 'egész típusú változó deklarációja Dim dt70YearsOfVictory As Date 'változó deklarációja dátum és idő tárolására Dim otherValue ' típus nincs megadva, a típusú változó Public Sub Main () strMessage = "Hello World!" iProductCount = 125 dt70YearsOfVictory = # 5 / 9 / 2015 14:00:00 PM # ' dátum 2015. május 9. 14:00:00 otherValue = 12,5 ' változó típusa Változat, altípus Double. otherValue = "Wikipedia" ' változótípus Változat, String altípus. vége al

Visual Basic 6.0 alaptípusok táblázata

Név Típusméret Adattípus Leírás
bájtok 1 bájt Byte. 0 és 255 közötti egész számok tárolására tervezték. Ha egy ilyen típusú változóhoz olyan érték van hozzárendelve, amely meghaladja ezeket a határokat, akkor a Visual Basic futásidejű hibát generál.
Egész szám 2 bájt Egész. A – 32 768 és 32 767 közötti egész számok tárolására tervezték . Utótag a "%" típusjelöléshez.
Hosszú 4 bájt hosszú egész szám. A – 2 147 483 648 és 2 147 483 647 közötti egész számok tárolására tervezték . Utótag az "&" típusjelöléshez.
Egyetlen 4 bájt Egyetlen pontosságú lebegőpontos. Tartomány - 3,402823E38 - 1,401298E-45 negatív értékek esetén; 1,401298E –453,402823E38 pozitív értékek esetén. A típusmegjelölés utótagja "!"
Kettős 8 bájt Dupla pontosságú lebegőpontos. Az ilyen típusú változók legfeljebb 16 számjegyből és legfeljebb 300 karakterből álló számok tárolását teszik lehetővé. Az értéktartomány -1,80E+308 és 1,80E+308 között változik. Az utótag "#". A számítások hozzávetőlegesek, mivel a szám bináris ábrázolását az IEEE 754 szabvány szerint használjuk .
Decimális 16 bájt Méretezett egész szám. Ez a típus a számok decimális ábrázolását használja. A számítások vele, valamint a Pénznem típussal pontosak. Az értéktartomány -7,92E+28 és 7,92E+28 között van. Decimális típusú változót nem lehet közvetlenül deklarálni. Csak egy Variant altípusaként használható, és egy változót a cast függvény segítségével lehet átadni erre a típusra CDec.
Boolean 2 bájt A logikai adattípus csak két értéket tárolhat: igaz vagy hamis, igaz vagy hamis. A VB valódi értéke egy -1 egész számnak felel meg, a hamis érték pedig 0, és implicit típusú öntéssel a nullától eltérő bármely számérték igaznak minősül. Ez a viselkedés lehetővé teszi a AND, OR, NOT, logikai operátorok használatát XORnem csak a Boole-algebrához, hanem bitenkénti műveletekhez is. [3]
Húr 10 + 2*N bájt Változó hosszúságú karakterlánc. A karakterlánc (karakter) információ tárolására tervezték. Maga a karakterlánc Unicode kódolásban van tárolva , így minden karakter 2 bájttal van kódolva. Ha belülről nézzük a típust, akkor további 4 bájt a karakterláncra mutató mutató tárolására szolgál, 4 bájt a karakterlánc méretére, és maga a string null karakterekkel záródik (további 2 bájt). Így a maximális sorméret akár 2 GB is lehet. Utótag, mint a "$".
String*N 2*N bájt Állandó hosszúságú karakterlánc. A String típushoz hasonlóan karakteres adatokat tárol, kivéve, hogy az adatok mérete rögzített, és a változó deklarálásakor kerül megadásra. Ha a karakterlánc értéke túl nagy, akkor a rendszer a kívánt méretre csonkolja. Ha a karakterlánc kisebb a szükségesnél, akkor szóköz hozzáadásával kiegyenlíti a méretet. Meg kell jegyezni, hogy a rögzített karakterláncok és tömbök, valamint a struktúrák nem lehetnek nagyobbak 64 kb-nál.
Dátum 8 bájt Az adattípus lehetővé teszi az idő- és dátumértékek tárolását 100. január 1. éjfél és 9999. december 31. éjfél között. Ha egy változóhoz csak dátumérték van hozzárendelve, akkor az idő 00:00. Egy egész szám egy napot jelent. Ez lehetővé teszi a dátumok hozzáadását és kivonását csak matematikai operátorok használatával, de a VB speciális dátumfüggvényeket biztosít erre.
Tárgy 4 bájt Egy objektumra való hivatkozás tárolására szolgál. Ehhez a típushoz a változóhoz való hozzárendelés a Set. Maga a típus az IDispatch-hez analóg, az IDispatch interfészre való hivatkozást tárolja. Minden objektumhoz az IUnknown-t kell használnia.
Valuta 8 bájt Pénzügyi. Ez a típus legfeljebb 4 számjegyből állhat a tizedesvessző után, és legfeljebb 14 számjegyből állhat előtte. Az értékek tizedes számok, nem binárisak, mint az egyszeres és dupla pontosságú lebegőpontos típusok esetében. Így a számítások pontosak lesznek. Az értéktartomány -922337203685477,6000 és 922337203685477,6000 között van . Ezt a típust preferálják pénzügyi számításokhoz. "@" utótag
Változat 16 bájt / 22 bájt + N bájt / N bájt A Variant típusú változó bármilyen típusú adatot tartalmazhat, beleértve az objektumhivatkozásokat, a felhasználó által definiált típusokat és a tömböket. A Visual Basic automatikusan elvégzi a szükséges adatátalakításokat . Egy számot tartalmazó altípushoz 16 bájt memóriára van szükség, a karakterlánc adatok tárolására pedig 22 bájt + magának a karakterláncnak a hossza. Az értéktartomány megegyezik az altípus értéktartományával. Ez a típus a leglassabb a végrehajtási sebesség szempontjából, mivel időbe telik az értékek ki- és becsomagolása.

Operátorok

A Visual Basic nyelv számos operátort tartalmaz, amelyek az aritmetikai műveletekért, az összehasonlítási és hozzárendelési műveletekért, valamint az összefűzésért felelősek .

hozzárendelés operátor

  • Az egyenlőségjel (=) értéket rendel egy változóhoz. Lehetőség van a kulcsszó használatára is Leta változó neve előtt. A BASIC nyelv korai verzióiban kötelező volt, de a Visual Basicben meghagyták a kompatibilitás miatt. Ahhoz, hogy objektumtípust rendeljünk egy változóhoz, a kulcsszó jelenléte szükséges Set. Példák: nVar = 10, Let iCount = 20, Set refDouble = objClass.

A C-ben megvalósított többszörös hozzárendelés nem lehetséges. A = B = Cnem azt jelenti, hogy A, Bés Cazonos értékei lesznek. A VB kiértékeli a kifejezést , és az eredményt a , vagy , 0 vagy -1 B = Cváltozóhoz rendeli , a típustól függően. ATrueFalse

Aritmetikai operátorok

  • összeadás (+), kivonás (-), szorzás (*), osztás (/)
  • hatványozás (^). Példa:2 ^ 3 = 8
  • egész osztás (\). Az első számot elosztja a másodikkal, eldobja (nem kerekíti) a tört részt. Példa:5 \ 2 = 2
  • modulo divízió (Mod). Az első számot elosztja a másodikkal, és csak az osztás maradékát adja vissza. Példa:5 Mod 2 = 1

Összehasonlító operátorok

  • egyenlőség (=). Példa:If nVar = 10 Then
  • nagyobb és kisebb, mint (> és <). Példa:If nVar > 10 Then
  • nagyobb vagy egyenlő, és kisebb vagy egyenlő, mint (>= és <=). Példa:If nVar >= 10 Then
  • nem egyenlő (<>). Példa:If nVar <> 10 Then
  • tárgyak összehasonlítása (Is). Meghatározza, hogy az objektumváltozók ugyanarra az objektumra vagy különbözőekre hivatkozzanak-e. Példa:If obj1 Is obj2 Then
  • hasonlóság operátor (Tetszik). Összehasonlít egy karakterlánc objektumot egy mintával, és megállapítja, hogy a minta egyezik-e. Példa:If strEmail Like "*@*.*" Then

Logikai operátorok

  • logikai ÉS (És) – A kifejezés mindkét részének igaznak kell lennie ahhoz, hogy az egész kifejezés igaz legyen. Példa:If (2 * 2 = 4) And (2 * 3 = 6) Then
  • logikai VAGY (Vagy) - legalább az egyik kifejezésnek igaznak kell lennie. Példa:If (2 * 2 = 5) Or (2 * 2 = 4) Then
  • logikai negáció (Not) – akkor tér vissza True, ha a feltétel hamis, és fordítva. Példa:If Not(2 * 2 = 5) Then
  • logikai kivétel (Xor) - a kifejezésben akkor E1 Xor E2tér vissza True, ha csak E1 = Truevagy csak E2 = True, egyébként - False.
  • Ekvivalencia (Eqv) − Kiértékeli két kifejezés ekvivalenciáját, akkor ad eredményt, Trueha azonos értékűek.
  • implikáció (Imp) — visszaadja , Falseha E1 = Trueés E2 = False, egyébként — True.

Összefűzési operátorok

  • A (+) operátor a karakterláncok összefűzésére szolgál. Ha a kifejezés mindkét része karakter típusú, akkor a karakterlánc-összefűzési művelet sikeres lesz. Ha a kifejezés egyik része numerikus típusú, de a másik része nem konvertálható megfelelően számmá, akkor típusadási hiba lép fel. Az ilyen helyzetek elkerülése érdekében ajánlatos a megfelelő operátorokat használni a típuskonverzióhoz, vagy az (&) operátort a karakterláncok összefűzéséhez.
  • Az (&) operátor automatikusan karakterlánc-típussá alakítja a kifejezéseket és az értékeket. Például a kifejezés str = "10" & 20„1020” eredményt ad, nem „30”-at. Ha a (+) operátort használjuk ebben a kifejezésben, akkor a VB a "10" kifejezést a 10-es numerikus típusba adja, és ha sikeres, akkor aritmetikai összeadást hajt végre.

Vezérlési struktúrák

A Visual Basicben, mint sok programozási nyelvben, vannak olyan konstrukciók, amelyek szabályozzák a műveletek végrehajtásának sorrendjét. Egyes konstrukciók, például GoSubés Return, megmaradnak a BASIC nyelv korábbi verzióival való kompatibilitás érdekében, de a különálló eljárásokként történő megvalósítás strukturáltabb kódot biztosíthat.

Fiókkezelő

Általános szintaxis:

'Írjon egy elágazási utasítást egy sorban If < feltétel > Akkor [ action_when_condition_is_true ] 'Ez a bejegyzés lehetővé teszi, hogy a feltétel igazságától függő műveleteket hajtson végre If < feltétel > Akkor [ action_when_condition_is true ] Else [ action_when_condition_false ] 'Írjon többsoros elágazási utasítást If < feltétel > Then [ action_when_condition_is true ] ElseIf < feltétel2 > Then [ action_when_condition2_true ] ElseIf < feltételN > Then [ action_when_conditionN_true ] Else [ action_when_condition_false ] End If Kiválasztás operátor

Általános szintaxis:

Válassza a Case < value_tested > 'Egy vagy több feltétel alapján tesztelendő változó vagy kifejezés Case < value_1 > 'A művelet akkor kerül végrehajtásra, ha a tesztelt érték megegyezik az 1 -es értékkel [ action_1 ] Case < value_2 > , < value_3 > , < value_3 > 'Tesztek értékek listája. Ha talál egyezést, akkor a [ action_2 ] művelet végrehajtásra kerül . Case < value_5 > To < value_6 > 'Ellenőrzi az értéktartományt ​​[ action_3 ] Case Is >= < value_7 > 'Ellenőrzi az igazság értékét a következő feltétellel action_4 ] Else eset ' A művelet akkor kerül végrehajtásra, ha egyik feltétel sem teljesíti a feltételt [ action_5 ] Végkiválasztás

Példa: különböző üzenetek megjelenítése egy változó értékétől függően

'Írjunk be egy változót, és adjunk neki értéket kézzel Dim X As Double X = InputBox ( "Adja meg az X változó numerikus értékét" ) Válassza az X esetet 'Ellenőrizze, hogy az értékünk illeszkedik-e valamilyen képzeletbeli függvényhez Case Is < 5 , Is >= 20 , 12 to 15 'Érvényes értékek tartománya MsgBox "Valamely függvény érvényes értéke" Más eset "Érvénytelen értékek MsgBox " Az érték bizonyos funkciókban nem használható" Végkiválasztás Hurok számlálóval

Általános szintaxis:

For < variable > = < value > To < end_value > [ Step < step_value >] [ utasításblokk ] [ Exit For ] 'Kilépés a ciklusból Következő [ változó ]

Példa: páros számok összegének kiszámítása 1-től 100-ig

Ha I = 0–100 2. lépés Összeg = Összeg + I Következő _ _ Közös ciklus

Általános szintaxis:

Minden < változóhoz > In < gyűjtemény > [ utasítás_blokk ] [ Exit For ] 'Kényszerített kilépési ciklus Következő [ változó ]

Példa: Egy tömb minden elemét megjeleníti

Dim strItem As Variant A tömb minden egyes eleméhez ( "Alma" , "Körte" , "Szilva" ) StrItem nyomtatása Következő Feltételes hurok

Általános szintaxis:

Do While < feltétel > 'A ciklus akkor fut le, ha a feltétel igaz [ utasítás_blokk ] [ Kilépés Do ] 'Kényszer kilépés a ciklusból Do Until < feltétel > 'A ciklus akkor fut le, ha a feltétel hamis [ utasítás_blokk ] [ Kilépés Do ] Cikk Míg < feltétel > 'A ciklus akkor kerül végrehajtásra, ha a feltétel igaz [ utasítás_blokk ] Wend

Példa: Szöveges fájl olvasása soronként

Nyissa meg a "file.txt" fájlt # 1 bevitelhez Do While Not EOF ( 1 ) ' Igaz értéke, ha a fájl vége várható. Sor Bemenet # 1 , strBuffer 'Sor beolvasása a Debug változóba . Nyomtatás strBuffer 'Kimenet a hibakereső ablakba Loop Close # 1 Hurok utófeltétellel

Általános szintaxis:

Do [ utasítás_blokk ] [ Exit Do ] Loop While < feltétel > Do [ utasításblokk ] [ Exit Do ] Loop Until < feltétel > _

Eljárások és funkciók

A szubrutinok a nyelv egyik alapeleme. Ezek eljárások és funkciók.

  • Az eljárás egy operátorral kezdődik és a Sub-val végződik End Sub, amely közé a kód kerül. Az eljárásokat maga a Visual Basic hívhatja meg, például eseménykezelőként implementálva, vagy más eljárások és függvények. Az eseményeljárás neve az objektum nevéből, az aláhúzásból és az esemény nevéből áll:
Privát Sub Command1_Click () 'Az esemény akkor indul el, ha a gombvezérlőre kattintanak ... End Sub Private Sub Form_MouseMove ( gomb As Integer , Shift As Integer , X As Single , Y As Single ) 'Akkor hívják meg, amikor az egérmutató mozog az űrlapablakban ... End Sub

A Visual Basic valójában a Windows üzenethurkot valósítja meg. Az űrlappéldában a ciklus szűri az üzenetet WM_MOUSEMOVE, és automatikusan meghívja az eljárást Form_MouseMovea paraméterekkel: melyik egérgombot nyomták meg, mutató koordinátái. Ez a mechanizmus elrejti a Windows-környezet programozásának bizonyos aspektusait a fejlesztő elől, lehetővé téve számára, hogy azonnal elkezdhesse a kereskedelmi kód írását. A legtöbb esetben a megoldandó feladatok osztálya nem követeli meg a programozótól, hogy ismerje az üzeneteket és az ablakfunkciókat. A Visual Basic azonban nem korlátozza a programozót az ablaküzenetek kezelésében. Ez nagyon rugalmas megközelítést tesz lehetővé az alkalmazások létrehozásához, de kellő tapasztalatot is igényel egy ilyen kód megírása, ami miatt a program instabilan futhat akár összeomlásig.

  • A VB függvényei kulcsszóval kezdődnek, és -re Functionvégződnek End Function. A függvény visszatérési értéke egy olyan változóhoz van hozzárendelve, amely megegyezik a függvény nevével. Egy eljárás vagy funkció végrehajtásának idő előtti megszakításához speciális operátorok Exit Subés Exit Function. A Visual Basic 6.0 beépített függvényeket tartalmaz a fájlrendszerrel való munkához, dátumot és időt, matematikai függvényeket, a rendszerrel való interakcióhoz szükséges funkciókat, karakterláncokkal való munkavégzésre szolgáló funkciókat, casting típusú funkciókat és pénzügyi számítási funkciókat. Vannak olyan nem dokumentált függvények is, amelyek lehetővé teszik például a mutatókkal való munkát.

Példa egy függvényre másodfokú egyenlet megoldására:

Privát al - () Dim RetX1 As Double , RetX2 As Double Dim StrStatus As String strStatus = SolveQuadraticEquation ( 4 , 6 , 2 , RetX1 , RetX2 ) ' Oldja meg a 4*X^2 + 6*X - 2 = 0 egyenletet 'Válasz megjelenítése MsgBox "Felbontás: " & strStatus & vbCrLf & _ "X1 = " & RetX1 & vbCrLf & _ "X2 = " & RetX2 , vbInformation End Sub ' Quadratic Equation Solve Function Public Function SolveQuadraticEquation ( ByVal A As Double , _ ByVal B As Double , _ ByVal C As Double , _ ByVal C As Double , _ ByRef X1 As Double , _ ByRef X2 As Double ) As String Dim D As Dupla D = ( B * B ) ) - ( 4 * A * C ) 'Keresse ki a diszkrimináns értékét Ha D >= 0 , akkor X1 = ( - B - Sqr ( D )) / ( 2 * A ) ' Számítsa ki az X2 = ( - B + Sqr ( D )) / ( 2 * A ) egyenlet gyökereit ! SolveQuadraticEquation = "Megoldás található" 'A függvény üzenetet ad vissza a megoldásról . Else SolveQuadraticEquation = "Diskrimináns < 0. Nincs gyökér" End If End függvény

Ebben a példában a módosítót láthatja a , és ByValargumentumok előtt . Ez biztosítja, hogy a függvény paraméterei érték szerint kerüljenek átadásra . A módosító viszont hivatkozással adja át az értéket . Az ilyen típusú módosítóknál a függvény módosíthatja a paraméterként átadott változók értékeit. A Visual Basic alapértelmezés szerint mindig referenciaként adja át az értékeket, ha egyik módosító sincs megadva. ABCByRef

Modulok és osztályok

A Visual Basic programkódja modulokban van tárolva. Csak háromféle modul létezik: űrlapmodul (Form), szabványos modul (Module) és osztálymodul (Class Module).

  • Az űrlapmodul (*.frm fájlkiterjesztés) a legtöbb Visual Basic alkalmazás alapja. Az űrlapmodul eseménykezelési eljárásokat, általános eljárásokat és űrlap szinten deklaráltakat tartalmaz: változókat, konstansokat, típusokat és külső eljárásokat. Ha megnyitja az űrlapmodult egy szövegszerkesztőben, megtekintheti az űrlap és vezérlőinek leírását, beleértve azok tulajdonságait is. Az űrlapmodulban elhelyezett kód más űrlapokra vagy alkalmazásobjektumokra hivatkozhat.
  • A szabványos modul (*.bas fájlkiterjesztés) olyan eljárások, függvények és deklarációk tárolója, amelyekhez általában más alkalmazásmodulok férnek hozzá. Tartalmazhatnak globális változót (az egész alkalmazás számára elérhető), vagy modulszinten deklarálva: változókat, konstansokat, típusokat, külső és globális eljárásokat. A szabványos modulban elhelyezett kód nem feltétlenül kapcsolódik egy adott alkalmazáshoz; ha nem használ űrlapmodul hivatkozásokat vagy vezérlőneveket, a szabványos modul más alkalmazásokban is használható.
  • Az osztálymodul (*.cls fájlkiterjesztés) a Visual Basic objektumorientált programozásának alapja. Az osztálymodul új objektumok létrehozására szolgál. Ezeknek az objektumoknak saját tulajdonságaik, módszereik és eseményeik lehetnek. Valójában egy űrlap csak egy osztálymodul, amely tartalmazhat rá helyezett vezérlőket, és megjelenítheti azokat a képernyőn. Az osztályok tartalmazhatnak speciális eljárásokat Class_Initializeés Class_Terminate, amelyek gyakorlatilag konstruktorok és destruktorok .

Objektumorientált programozás

Az objektumok közötti egyszerű interakció a Visual Basic paradigma egyik alapvető összetevője. Magát az objektumot az osztály példányának nevezzük . A VB objektummodell különféle osztályokat biztosít az űrlapokkal, vezérlőkkel, vágólappal, gyűjteményekkel, képernyővel stb. való munkavégzéshez. Más objektumokkal való interakcióhoz az osztály egy tulajdonságokból , metódusokból és eseményekből álló felületet biztosít a fejlesztőnek .

Új objektum létrehozása egy osztályból lehetséges korai vagy késői kötéssel. Korai kötéshez a kulcsszót Newaz osztálynév előtt használjuk. Késői kötéshez egy függvényt használnak CreateObject, amely a létrehozott objektumra való hivatkozást adja vissza. A hivatkozások a típusú változókhoz Objectaz operátor használatával rendelhetők Set. Az osztály metódusaihoz és tulajdonságaihoz a pont operátoron keresztül lehet hozzáférni ., amely közvetlenül az objektumtípus változóneve után kerül elhelyezésre. Ha az osztály eseményeket tartalmaz, akkor a változókat a kulcsszóval deklaráljuk WithEvents, így elérhetőek lesznek az eseménykezelési eljárások.

A példa bemutatja, hogy a program hogyan működik együtt a Microsoft Scripting Runtime könyvtárral , amely objektumokat biztosít a fájlrendszerrel való munkához:

Nyilvános al - () Dim objFSO mint új fájlrendszerobjektum 'Hozzon létre egy példányt az osztályból a New Dim objWindows As Folder utasítással Állítsa be : objWindows = objFSO . GetFolder ( Environ ( "SYSTEMROOT" )) 'Hívja meg a GetFolder osztály metódusát, és rendeljen hivatkozást a kapott objektumhoz MsgBox "Windows Folder:" & objWindows . Elérési út 'Olvassa be az MsgBox osztály tulajdonságait "Létrehozás dátuma:" & Formátum ( objWindows . DateCreated , "ÉÉÉÉ-HH-NN H:mm:ss" ) Dim sTextFilePath As String Dim objTS As TextStream sTextFilePath = objFSO . BuildPath ( Environ ( "TEMP" ), "Test file.txt" ) 'A két paraméteres metódus egy String típusú értéket ad vissza Állítsa be : objTS = objFSO . CreateTextFile ( sTextFilePath , True ) objTS . Írd be, hogy "Helló Wikipédia!" objTS . Bezárás objFSO . DeleteFile sTextFilePath , igaz Set objFSO = Semmi 'A Nothing hozzárendelése felszabadítja a hivatkozást, és az objektum meghívhatja a destruktor eljárást Set objWindows = Semmi 'A VB automatikusan meghívja a destruktort, ha az objektum már nem hivatkozik Set objTS = Nothing End Sub

A Visual Basic lehetővé teszi a fejlesztő számára, hogy maga hozzon létre új osztályokat. Más programozási nyelvekkel ellentétben, mint például a Java és a C++, a Visual Basic nem támogatja teljes mértékben az OOP-t.

Mint tudják, egy absztrakt osztályra van szükség ahhoz, hogy sablont biztosítsunk más osztályok interfészéhez. A Visual Basicben azok az osztályok, amelyeknek vannak osztálytagjai, de nincs implementációja, használhatók absztrakt osztályokként, de valójában nem azok. Mindig létrehozhat objektumokat Visual Basic osztályokból, még akkor is, ha nem tartalmaznak kódot [4]

A beágyazás elve a Visual Basicben működik. Az osztálytagokhoz való hozzáférés elhatárolásához a és módosítókat eljárások Public, függvények, konstansok, változók Privateés Friendfelhasználó által definiált típusok leírására használják.

A megvalósítási öröklés nem támogatott. A Visual Basic csak a felületen keresztül támogatja az interfész öröklésétImplements. Interfész öröklésekor bármely osztály működhet az interfész alaposztályaként. Általában bármely osztály működhet egy interfész alaposztályaként.

A polimorfizmust csak interfészeken keresztül kényszerítik ki, mivel a VB nem támogatja az öröklődést. A polimorfizmus megvalósítását a Transport osztály interfészét megvalósító Autó és Repülőgép osztályok példáján mutatjuk be.

'Class ITransport.cls nyilvános funkció GetMaxSpeed ​​( ) mint hosszú végű funkció 'Class CAuto.cls megvalósítja az ITransport 'Inherit interfészt Privát funkció ITransport_GetMaxSpeed ​​() As Long 'Módszer megvalósítása ITransport_GetMaxSpeed ​​​​= 240 végfunkció 'Class CFly.cls megvalósítja az ITransportot Privát funkció ITransport_GetMaxSpeed ​​( ) Amíg ITransport_GetMaxSpeed ​​= 700 végfunkció _ 'Standard modul Program.bas Opció Explicit Public Sub Main () Dim T As ITransport 'ITransport típusú változó deklarálása T beállítása = Új cAuto WhatTransportSpeed ​​T 'A hivatkozást egy olyan eljárásra adjuk át, amely meghívja a kívánt osztálymetódust, a megvalósítástól függően T készlet = Új cFly WhatTransportSpeed ​​​​T End Sub "A függvénynek van egy argumentuma, amely az ITransport felületet megvalósító objektumra hivatkozik. Public Sub WhatTransportSpeed ​​( Transport As ITransport ) MsgBox "Maximális sebesség: " & Transport . GetMaxSpeed ​​() End Sub

Űrlaptervező

Kódszerkesztő

A kódszerkesztő egy szövegszerkesztő, amely további funkciókkal rendelkezik a forráskód egyszerű és gyors beviteléhez:

  • A forráskód szintaxiskiemelése .
  • Az ablak vízszintes felosztása 2 panelre.
  • Az összes forráskód vagy egy adott eljárás megjelenítése.
  • A programban használt objektumok felsorolása a fejlesztő által kezelhető események listájával.
  • Automatikus kis- és nagybetűváltás. A kulcsszavak első betűje nagybetűs, a változónevek kis- és nagybetűje automatikusan megváltozik, hogy megfeleljen a deklaráláskor megadott kis- és nagybetűknek.
  • Funkciók, eljárások, változók nevének automatikus kiegészítése az IntelliSense segítségével .
  • A kód ellenőrzése szintaktikai hibákért.
  • Intelligens blokktáblázás _

Hibakeresés

Az integrált fejlesztői környezet gazdag lehetőségeket biztosít a programozó számára a programok hibakeresésére. A Visual Basic egyik előnye, hogy a program forráskódját nagymértékben megváltoztathatjuk anélkül, hogy teljesen újrafordítanák és újraindítanák. A hibakeresési eljárások során a fejlesztőnek lehetősége van az éppen végrehajtott utasítást jelző markert mozgatni, előre - a kód egy részének kihagyásával és visszafelé -, ami arra kényszeríti a VB-t, hogy a már feldolgozott utasításokat újra végrehajtsa.

A környezet többek között olyan hibakereső eszközöket biztosít, mint az azonnali ablak, a helyiek ablak, a figyelőablak és a Call Stack Viewer . Az ilyen fejlett eszközök lehetővé teszik a programozó számára a vizsgált algoritmus mélyreható elemzését a hibakeresés alatt álló alkalmazásban.

A Visual Basic hibakeresési módba lép, ha az alábbi feltételek egyike teljesül:

  • Az utasítások végrehajtásakorStop
  • Ha olyan utasítást hajtunk végre, amelynek töréspontja van beállítva (töréspont)
  • Ha olyan hiba történik, amelyhez nem található megfelelő hibakezelő
  • Gyorsbillentyűk megnyomásávalCtrl + Break
  • kényelmes programozás

Összeállítás

Az integrált fejlesztői környezethez tartozik egy P-kód (P-kód) fordító , egy natív Back-End x86-kompatibilis fordító és egy linker (linker). A két fordító jelenléte lehetővé teszi a Visual Basic hozzárendelését mind egy fordított, mind egy értelmezett nyelvhez. Függetlenül attól, hogy melyik fordítót választjuk, az alkalmazások futtatásához a Visual Basic futásidejű virtuális gépre van szükség, amely az MSVBVMXX.DLL könyvtár, ahol az XX a nyelvi verzió [5]

  • A P-kód lehetővé teszi, hogy az alkalmazás hardverfüggetlen virtuális gépen fusson, amely valós időben lefordítja a program pszeudokódját a processzor gépi kódjára. Elméletileg ez a megközelítés lehetővé teszi az alkalmazások hordozhatóságát új hardverplatformokra anélkül, hogy maguknak a programoknak a forráskódját módosítani kellene. A P-Code-ba fordítás egyik fő előnye a forráskód "forró" módosítása hibakeresési módban . A Visual Basic debug módban mindig P-kódra fordítja a programot, ekkor a végrehajtás felfüggeszthető, a programozó jelentős változtatásokat hajt végre a forráskódon, majd a végrehajtás folytatódik: nincs szükség az alkalmazás teljes újrafordítására és újraindítására. A fordító létrehoz egy végrehajtható fájlt PE formátumban , de a valódi processzor utasításai helyett a virtuális gépet inicializáló kódot és az alkalmazás bájtkódját tartalmazza. A P-kódra fordítás fő hátránya a programvégrehajtás alacsony sebessége, mivel az idő nagy részét a program gépi kódra fordítása tölti.
  • A natív fordítás a Visual Basic 5.0 megjelenésével vált lehetővé. Ez a fordító lehetővé teszi nagy teljesítményű kód létrehozását a P-kódba fordított alkalmazásokhoz képest. A legtöbb utasítás gépi kódra van fordítva: aritmetikai műveletek, vezérlőkonstrukciók, de az olyan műveleteket, mint a beépített nyelvi függvények hívása, a karakterláncokkal végzett munka és a hibakezelés, a Visual Basic futásidejű könyvtára hajtja végre. Így annak ellenére, hogy natív kódra van fordítva, az alkalmazás futtatásához a Visual Basic virtuális gépre lesz szüksége. Ezenkívül a futásidejű függvénytárból gyakran meghívott függvények az alkalmazás-végrehajtás sebességének romlásához vezetnek. De minden hiányosság ellenére a Native fordító elfogadható kódvégrehajtási sebességet biztosít. A fordító több optimalizálási lehetőséget is tartalmaz. A projekt-összeállítás lapon letilthat néhány ellenőrzési műveletet: tömb határon kívüli, egész számok túlcsordulása stb. Ezen paraméterek megfelelő beállítása lehetővé teszi a fejlesztő számára, hogy további teljesítménynövekedést kapjon a fejlesztés alatt álló alkalmazásban.

Telepítés

A Microsoft Visual Basic 6.0 tartalmazza a Package & Deployment Wizard [6] varázslót , amellyel Visual Basic projekteken alapuló telepítőcsomagokat hozhat létre. A jól ismert elődjéhez, a Setup Wizardhoz képest a P&D Wizard új funkciókat kínál, de sajnos az új eszköz tartalmaz néhány hibát. Ennek az alkalmazásnak az egyik problémája a dátum-konverziós hiba, ha a felhasználó operációs rendszerében beállított területi beállítás eltér az amerikaitól. Vannak harmadik féltől származó alkalmazások, amelyek fejlettebb eszközöket biztosítanak a telepítőcsomagok kezeléséhez.

A VB-alkalmazások egyszerű másolással is telepíthetők, amely néhány lépésből áll:

  • Ha nincs Visual Basic alkalmazás futtatófájlja (MSVBVM60.DLL) az operációs rendszer rendszerkönyvtárában, akkor először oda kell másolnia.
  • Ha az alkalmazás nem szabványos vezérlőket, például ActiveX - vezérlőket tartalmaz, először át kell másolnia azokat a rendszerkönyvtárba, és regisztrálnia kell őket a Microsoft Windows rendszerleíró adatbázisában. A komponensek regisztrációja automatizálható például egy parancs végrehajtásával regsvr32.exeés a fájl teljes elérési útjának átadásával, vagy programozottan a COM - kompatibilis komponenst DllRegisterServermegvalósító metódus közvetlen meghívásával.
  • Hozzon létre egy programmappát, másolja a végrehajtható fájlt, ha szükséges, hozzon létre egy alkalmazás parancsikont a felhasználó asztalán.

További funkciók

ActiveX (OCX vezérlők)

A VB 5.0-s verziótól kezdődően a fejlesztőnek lehetősége van nemcsak kész ActiveX -komponensek használatára , hanem saját létrehozására is. A VB gondoskodik a segédkódok létrehozásának minden munkájáról, amelynek célja az összetevő információinak rögzítése a rendszerleíró adatbázisban, az IDispatch interfész megvalósítása, az osztályok (CLSID), interfészek (IID) és típuskönyvtárak azonosítójaként használt egyedi GUID létrehozása ( LIBID) . Ennek a megközelítésnek köszönhetően a programozónak csak a szükséges funkciókkal rendelkező osztályokat kell létrehoznia.

Az új osztály- és interfész GUID-ok létrehozása a projekttulajdonságok lapon beállított kompatibilitási beállítástól függ. Három állapot egyikét veheti fel:

  • Nincs kompatibilitás – A Visual Basic új felület- és osztályazonosítókat hoz létre minden alkalommal, amikor a projektet felépítik vagy fordítják. Egy összetevő minden egyes buildje csak olyan alkalmazásokkal használható, amelyek az adott összetevő egy adott verziójával működnek, azaz ha az osztály és a projektnév nem módosul a fordítás során, új azonosítók generálódnak, és felülírják a rendszerleíró adatbázisban található információkat. , így a régi azonosítókra hivatkozó alkalmazások nem fognak tudni elindulni.
  • Tervezési szintű kompatibilitás - Ennek a beállításnak a célja a kompatibilitás fenntartása a tesztelés során, hogy az összetevő létrehozása után a viselkedés ugyanaz legyen, mintha a beállítást kompatibilitás nélkül állította volna be.
  • Bináris kompatibilitás – Projekt összeállításakor a Visual Basic szükség szerint új azonosítókat hoz létre. Az összetevő korábbi verzióiból származó osztály- és interfészazonosítók megmaradnak. Egy metódus megvalósításának megváltoztatása nem változtatja meg az azonosítókat. Szintén egy új osztály és metódusok hozzáadása nem változtatja meg a meglévő felületet. Így a régi alkalmazások használhatják az összetevő régi felületét, az új alkalmazások pedig hivatkozhatnak az interfész új verziójára. Ha egy metódust megváltoztatnak vagy eltávolítanak az interfészről, akkor a VB figyelmezteti az összetevő interfészével való eltérésre, és javasolja az alkalmazások újrafordítását. [7]

A fordítás befejezése után a kimenet egy bináris könyvtárfájl lesz a COM specifikációnak megfelelően . Ez az összetevő legalább 2 interfészt valósít meg : IUnknown és IDispatch. A típuskönyvtár ( TLB ) a végrehajtható fájl erőforrásaiba lesz integrálva. Ezenkívül hasznos információkat tartalmazó fájlok, például EXP és LIB jönnek létre.

Windows API (Application Programming Interface)

A Visual Basic nyelvi lehetőségeket biztosít a dinamikus hivatkozási könyvtárakból (DLL-ekből) származó függvények deklarálásához és meghívásához. Ez a mechanizmus lehetővé teszi az alkalmazások bővítését más fejlesztők által biztosított további könyvtárak használatával, beleértve a különböző programozási nyelveken írottakat is. Az egyik ilyen könyvtárkészletet a Microsoft Windows operációs rendszer biztosítja.

A függvény- és eljárásdeklaráció általános szintaxisa a következő:

[ Nyilvános | Privát ] Sub < eljárásnév > lib "dinamikus_könyvtárnév" deklarálása [ Alias ​​" alias" ] [ ( paraméterek ) ] [ Nyilvános | Privát ] Funkció deklarálása < függvény_neve > lib "dinamikus_könyvtárnév" [ Alias ​​"alias " ] [ ( paraméterek ) ] [ visszatérési_típusként ]

Az álneveket számos esetben meg kell adni: Visual Basic fenntartott azonosítók használata a függvény nevében, a név érvénytelen karaktereket tartalmaz, vagy a környezet nem tudja megfelelően értelmezni. A meghívott függvényeknek támogatniuk kell az StdCall hívási konvenciót .

Amikor egy String típusú paramétert ad át a WINAPI függvénynek, a VB automatikusan átalakítja a kódolást Unicode -ról ANSI-ra, a funkció végrehajtása után megtörténik a fordított átalakítás ANSI-ról Unicode-ra. Az automatikus karakterlánc-konverzió elkerülése érdekében a függvény argumentumait Long-ként kell deklarálni, és a függvény segítségével egy karakterláncra mutató mutatót kell átadni StrPtr, így optimalizálható a több függvényhívást végző alkalmazás teljesítménye.

Példa a Windows API meghívására, hogy megkapja a Windows könyvtár teljes elérési útját és egy üzenetet jelenítsen meg a képernyőn:

Függvény privát deklarálása GetWindowsDirectory Lib " kernel32.dll" Alias ​​" GetWindowsDirectoryA " ( ByVal puffer mint String , ByVal nSize As Long ) A Long Private Declare függvény MessageBox Lib "user32.dll" Alias ​​"MessageBox hoxA " ( ByVal , ByVal lpText As String , ByVal lpCaption As String , ByVal wType As Long ) Amíg _ Privát Const MB_ICONASTERISK Amíg = 64 _ Public Sub Main () Dim puffer As String 'Az a változó, amelybe a függvény eredménye érkezik. Dim ret Len As Long puffer = String ( 256 , vbNullChar ) lens = GetWindowsDirectory ( puffer , Len ( puffer )) 'Funkcióhívási puffer = Bal ( puffer , lencse ) MessageBox 0 & , "OS telepítve a könyvtárban: " & puffer , "Információ" , MB_ICONASTERISK ' Alfüggvényhívás vége

Megjegyzendő, hogy a WINAPI függvények hívása bizonyos belső megállapodásokhoz kapcsolódik, nevezetesen azzal, hogy a függvény hogyan ad vissza eredményt, milyen struktúrákat kell átadnia, hány argumentumot és típusukat tartalmazzák a visszatérési érték. A fejlesztők az általuk használt könyvtárakhoz mellékelt műszaki dokumentációt használják a funkciók és struktúrák megfelelő deklarálásához.

Előnyök és hátrányok

Előnyök

  • Alkalmazások nagysebességű létrehozása grafikus felülettel Microsoft Windowshoz .
  • A nyelv egyszerű szintaxisa alacsony belépési akadályt jelent.
  • Lehetőség van gépi kódra és P-kódra is fordítani (a programozó választása szerint).
  • A típusbiztonság védelmet nyújt a mutatók használatával és a memóriahozzáféréssel kapcsolatos hibák ellen. Ez a szempont stabilabbá teszi a Visual Basic alkalmazásokat, ugyanakkor kritikák tárgyát is képezi.
  • A legtöbb WinAPI függvény [8] használatának lehetősége az alkalmazás funkcionalitásának bővítésére. Ezt a kérdést Dan Appleman vizsgálta meg a legteljesebben , aki megírta a "Visual Basic Programmer's Guide to the Win32 API" című könyvet.

Hátrányok

  • Csak a Windows és a Mac OS X család operációs rendszereinek támogatása (Kivétel - VB1 DOS -hoz ).
  • Az objektumok megvalósításának öröklésére szolgáló teljes értékű mechanizmus hiánya [9] . A nyelvben létező öröklődés csak interfészek öröklését teszi lehetővé , megvalósításukat azonban nem.
  • Szinte az összes beépített nyelvi funkció a futásidejű könyvtáron keresztül valósul meg , ami viszont sok "extra" munkát végez a típusellenőrzés és/vagy a típuskonverzió terén, ami lelassítja az alkalmazások sebességét.

A nyelv erősen kötődik fejlesztői környezetéhez és a Microsoft Windows operációs rendszerhez, mivel kizárólag Windows alkalmazások írásának eszköze. A környezethez való kötődés abban rejlik, hogy számos eszköz létezik a programozás segítésére és megkönnyítésére: beépített hibakereső, változók és adatstruktúrák menet közbeni megtekintése, hibakereső ablak, eszköztippek programíráskor ( IntelliSense ). Mindezek az előnyök haszontalanná, sőt lehetetlenné teszik a Visual Basic használatát a fejlesztői környezeten kívül, például egy normál szövegszerkesztőben.

Kritika

  • Gyakran kritizálják a Visual Basic olyan szempontjait, mint a deklarált változók nyomon követésének letiltásának képessége , a változók implicit konvertálásának képessége, a "Variant" adattípus jelenléte . A kritikusok szerint ez rendkívül rossz kód írását teszi lehetővé . Másrészt ez pozitívumnak tekinthető, hiszen a VB nem erőlteti a "jó stílust", hanem nagyobb szabadságot ad a programozónak .
  • Mutatók hiánya , alacsony szintű memória-hozzáférés, ASM beillesztések, a natív könyvtárakba való funkciók exportálásának képtelensége, a szabványos konzolalkalmazás-fejlesztő eszközök hiánya. Annak ellenére , hogy a Visual Basic paradigma lehetővé teszi az átlagos VB - programozó számára, hogy mindezt nélkülözze, ezeket a dolgokat is gyakran kritizálják. És bár dokumentálatlan szolgáltatásokkal és bizonyos trükkökkel mindez megvalósítható VB-ben (például mutatók megszerzésére szolgáló függvények használatával VarPtr, StrPtrés ObjPtr); ezeknek a trükköknek a használata néha nehezebb, mint például C++- ban .

Érdemes azonban megjegyezni, hogy a nyelv minden hiányossága a fő előnyéből - a grafikus felület fejlesztésének egyszerűségéből - ered. Ezért sok programozó a Visual Basic-et használja a felhasználói felület fejlesztéséhez, és a program funkcionalitása más nyelveken (például C++ ) írt dinamikus hivatkozási könyvtárakként ( DLL -ek) valósul meg .

Megvalósítások és dialektusok

Visual Basic for Applications (VBA)

Ez a fejlesztői környezet gyakorlatilag nem különbözik a klasszikus Visual Basic-től, amely makrók és egyéb alkalmazási programok írására szolgál konkrét üzleti alkalmazásokhoz. A Microsoft Office csomagban való használatának köszönhetően a legnagyobb népszerűségnek örvend . A Visual Basic for Applications széles körben elterjedt használata, párosulva azzal, hogy kezdetben nem figyeltek a biztonsági kérdésekre, széles körben elterjedt makróvírusokhoz vezetett .

Sajátosságok:

  • Nem teszi lehetővé az alkalmazások EXE/DLL futtatható fájlokba való fordítását
  • Az üzleti alkalmazások modern környezetben való futtatásához megfelelő makróbiztonsági beállítások szükségesek a VBA - t kiszolgáló alkalmazásban
  • Néhány objektum hiányzik, például: Clipboard, App, Form, Timer, Data. Ehelyett más osztályok is rendelkezésre állnak, amelyek az alkalmazás-specifikus objektummodellben vannak megvalósítva.

Visual Basic Scripting Edition (VBScript)

Szkriptnyelv , amely a szokásos Visual Basic kissé csonka változata. Elsősorban a Microsoft Windows rendszerek adminisztrációjának automatizálására , valamint ASP -oldalak és szkriptek létrehozására szolgál az Internet Explorer számára .

Sajátosságok:

  • Nincsenek operátorok a fájlrendszerrel való munkához
  • Nincs mód arra, hogy egy változót meghatározott adattípussal deklaráljunk. Minden változó típusúVariant
  • Külső könyvtárakkal való munkához csak késői hivatkozás használható
  • Nincs kód lefordítása végrehajtható fájlokba
  • A forráskód a .vbsvagy kiterjesztésű szövegfájlokban tárolódik.vbe

eMbedded Visual Basic (eVB)

Ez az eszköz a Windows CE és a Windows Mobile operációs rendszerek szoftverének fejlesztésére szolgál . Tartalmazza az IDE-t, a hibakeresőt és az emulátort az alkalmazások teszteléséhez. Az eMbedded Visual Basic nem a teljes értékű Visual Basic programozási nyelven, hanem a Visual Basic Scripting Edition szkriptnyelven alapul . Az alkalmazások P-kódba vannak fordítva, és a végrehajtható fájlok kiterjesztése VB, amelyek a gazdagép alkalmazáshoz vannak társítva.

Sajátosságok:

  • Alapértelmezés szerint minden változó Variant típusú; az erős gépelés nem támogatott
  • Az ActiveX-vezérlők fejlesztése nem támogatott, de használható készen is
  • Számos beépített Visual Basic vezérlő nem támogatott, néhány tulajdonság hiányzik
  • Az alkalmazások futtatásához eMbedded Visual Basic Runtime könyvtárak szükségesek

Lásd még

Jegyzetek

  1. A Microsoft azt mondja, hogy leállítja a Visual Basic nyelvként való fejlesztését . Letöltve: 2020. március 18. Az eredetiből archiválva : 2020. március 29.
  2. Tervezett Visual Basic támogatás a .NET 5.0-hoz . Letöltve: 2020. március 18. Az eredetiből archiválva : 2022. január 5..
  3. https://msdn.microsoft.com/en-us/library/aa242751(v=vs.60).aspx Archiválva : 2015. december 22. a Wayback Machine MSDN-nél, Visual Basic 6.0, nyelvi referencia és operátor
  4. V. Szergejev. Visual Basic 6.0. A legteljesebb útmutató a Visual Basic környezetben végzett professzionális munkához. S. 493.
  5. https://support.microsoft.com/en-us/kb/229415 Archiválva : 2016. március 6. a Wayback Machine Visual Basic-en, támogatja a P-kód és a natív kódfordítást.
  6. A Csomagolás és telepítés varázsló . Vizuális alapfogalmak. Visual Studio 6.0  (angol) . MSDN . Microsoft . Letöltve: 2017. április 29. Az eredetiből archiválva : 2016. november 22..
  7. https://support.microsoft.com/en-us/kb/161137 Tervezés és bináris kompatibilitás használata
  8. A 16 bites verziók hozzáférhetnek a Win16 alrendszerhez, míg a 32 bites verziók a Win32-hez.
  9. Az implementáció öröklődésének hiánya a COM technológia jellemzője , nem maga a VB, ami csak ezt a tulajdonságot tükrözi.

Javasolt olvasmány

  • Maureen Williams Zimmerman. Microsoft Visual Basic 6.0 Reference Library . - Redmond, WA, USA: Microsoft Press, 1998. - 3344 p. — ISBN 1-57231-864-3 .
  • A Microsoft hivatalos akadémiai kurzusának munkatársai. Microsoft Visual Basic 6.0: Programozói útmutató . - Redmond, WA, USA: Microsoft Press, 1998. - 976 p. — ISBN 1-57231-863-5 .
  • John Clark Craig, Jeff Webb. Microsoft Visual Basic 6.0. Fejlesztői műhely. - "orosz kiadás", 2001. - 720 p. — ISBN 1-57231-883-X .
  • Dan Appleman. Win32 API és Visual Basic. Professional = Dan Appleman Visual Basic programozói útmutatója a Win32 API-hoz. - Szentpétervár. : "Péter" , 2001. - 1120 p. — ISBN 5-272-00198-2 .
  • James Cooper. Visual Basic tervezési minták: VB 6.0 és VB.NET . - Addison Wesley, 2002. - 484 p. — ISBN 0-201-70265-7 .
  • Szergejev V. Visual Basic 6.0. Útmutató szakembereknek. - Szentpétervár. : "BHV-Petersburg", 2004. - 974 p. - ISBN 5-8206-0019-3 .
  • Brian Siler, Jeff Spotts. Visual Basic használata 6. Classic Edition = Special Edition Visual Basic használatával 6. - M . : "Williams", 2007. - 832 p. — ISBN 0-7897-1542-2 .