Visual Basic | |
---|---|
Språkklass | Procedurell , Objektorienterad , Komponentorienterad , Händelseorienterad |
Utförandetyp | Sammanställt , tolkat |
Framträdde i | 1991 |
Utvecklaren | Microsoft |
Filtillägg _ | .bas, .cls, .frm, .vbp, .vbg |
Släpp | Visual Basic 6.0 (1998 ) |
Typ system | Statisk typning , Stark typning , Dynamisk typning |
Stora implementeringar | Microsoft Visual Studio |
Dialekter | Visual Basic för applikationer , Visual Basic-skript |
Blivit påverkad | QuickBasic , BASIC |
påverkas | Visual Basic .NET , REALbasic , Gambas , Xojo , Basic4ppc |
Hemsida | msdn.microsoft.com/ru-RU/vstudio/ms788229.aspx |
Mediafiler på Wikimedia Commons |
Microsoft Visual Basic är ett programmeringsspråk och en integrerad mjukvaruutvecklingsmiljö utvecklad av Microsoft Corporation . Visual Basic-språket ärvde andan, stilen och delvis syntaxen från sin förfader, BASIC-språket , som har många dialekter. Samtidigt kombinerar Visual Basic procedurer och delar av objektorienterade och komponentorienterade programmeringsspråk. VB IDE innehåller verktyg för visuell design av användargränssnitt, en kodredigerare med IntelliSense och syntaxmarkering och verktyg för att felsöka applikationer.
Visual Basic är också ett bra verktyg för snabb utveckling (RAD) av databasapplikationer för operativsystem i Microsoft Windows- familjen . Många färdiga komponenter som levereras med miljön är designade för att hjälpa programmeraren omedelbart att börja utveckla affärslogiken för en affärsapplikation, utan att avleda hans uppmärksamhet till att skriva kod för att starta programmet, prenumerera på händelser och andra mekanismer som VB implementerar automatiskt.
Visual Basic erkändes först av seriösa utvecklare efter lanseringen av version 3. Det slutliga erkännandet som ett fullfjädrat programmeringsverktyg för Windows kom med releasen av version 5. Version VB6, som är en del av Microsoft Visual Studio 6.0, har blivit en verkligt mogen och funktionsrik produkt.
Utgivningsdatum | Version | Beskrivning |
---|---|---|
maj 1991 | 1.0 | Visual Basic 1.0 för Microsoft Windows . QBasic- syntaxen togs som grunden för språket , och innovationen, som sedan gjorde stor popularitet för språket, var principen för kommunikation mellan språket och det grafiska gränssnittet. Denna princip utvecklades av Alan Cooper ( Alan Cooper ) och implementerades i prototypen Tripod (även känd som Ruby ) |
september 1992 | 1.0 | Visual Basic 1.0 under DOS . Det var inte helt kompatibelt med Windows-versionen av VB, eftersom det var nästa version av QuickBASIC och kördes i skärmtextläge. Det är intressant att notera att paketet inkluderade ett speciellt verktyg som konverterade projekt av denna version till Visual Basic 1.0-projekt för Windows. Hon gjorde koden så kompatibel som möjligt med Windows-versionen, konverterade formulären (även om resultatet var otillfredsställande på grund av skillnaderna i text- och grafikläge) och gav även kommentarer i koden med tips för ytterligare förbättringar. |
november 1992 | 2.0 | Visual Basic 2.0. Utvecklingsmiljön blev lättare att använda och fungerade snabbare. Fönstret Egenskaper har flyttats till en separat lista. Lade till källkodsmarkering . |
1993 | 3.0 | Visual Basic 3.0 släpptes i Standard- och Professional-utgåvor. Dessutom har en motor för att arbeta med Access-databaser lagts till i paketet . |
augusti 1995 | 4.0 | Visual Basic 4.0 var en version som kunde skapa både 32-bitars och 16-bitars Windows-applikationer. Dessutom blev det möjligt att skriva klasser i VB, och Visual Basic blev äntligen en fullfjädrad kompilator , vilket avsevärt ökade hastigheten på programexekveringen. Lade till stöd för OLE Controls (OCX), ersätter de gamla VBX-kontrollerna |
februari 1997 | 5.0 | Visual Basic 5.0 - från och med den här versionen blev det möjligt, tillsammans med konventionella applikationer, att utveckla dina egna COM-komponenter . Genom att kompilera en sådan komponent i en OCX-fil och leverera den var det möjligt att tillhandahålla dess kontrollobjekt inte bara till slutanvändaren utan även till andra utvecklare, varefter de kunde integrera detta objekt i sina applikationer. Den integrerade miljön inkluderar P-Code och Native kompilatorer. Applikationer exekveras av en ny virtuell maskin implementerad i det dynamiska biblioteket MSVBVM50.DLL. Även under det första kvartalet i år släpper Microsoft en produkt i en specialutgåva av Visual Basic 5 Control Creation Edition (VB5CCE), som enbart specialiserar sig på design av ActiveX- kontroller. |
Mitten av 1998 | 6,0 | Visual Basic 6.0 - Optimerad virtuell maskindrift och flyttad till MSVBVM60.dll. Förbättrad Native-kompilatorprestanda. Lade till nya funktioner för att arbeta med strängar och arrayer. Denna version av språket är den senaste i raden av klassisk VB. Microsoft ändrade språkpolicyn för Basic-familjen och istället för att utveckla Visual Basic skapades ett helt nytt språk, Visual Basic .NET . |
2002 | 7,0 | Första utgåvan av Visual Basic .NET . Den viktigaste funktionen är att koden hanteras helt av .NET Framework Common Language Runtime . Trasig bakåtkompatibilitet med klassisk Visual Basic (fryst som VB6). |
april 2003 | 7.1 | Microsoft har uppgraderat Visual Basic .NET, optimerat kompilatorn. Släppt med den uppdaterade versionen av .NET Framework 1.1. |
2005 | 8,0 | Ingår i Visual Studio 2005 . Kräver .NET Framework 2.0. Efter lanseringen av Visual Basic .NET 2003 släppte Microsoft prefixet ".NET" från produktnamnet och nästa version heter Visual Basic 2005. |
2008 | 9,0 | Ingår i Visual Studio 2008 . Kräver .NET Framework 3.5 |
2010 | 10,0 | Ingår i Visual Studio 2010 . Kräver .NET Framework 4 |
2012 | 11.0 | Ingår i Visual Studio 2012 . Kräver .NET Framework 4.5 |
2013 | 12,0 | Ingår i Visual Studio 2013 . Kräver .NET Framework 4.5.1 |
2015 | 14.0 (inte släppt som 13.0) | Ingår i Visual Studio 2015 . Uppdaterade .NET Framework till version 4.6 |
2017 | 15,0 | Ingår i Visual Studio 2017 . |
Efter lanseringen av Visual Basic version 6.0 ändrade utvecklare från Microsoft avsevärt riktningen för utvecklingen av denna teknik. Visual Basic .NET tillåter dig inte att programmera på det gamla sättet, eftersom det faktiskt är ett helt annat språk, samma som alla andra programmeringsspråk för .NET- plattformen . Språkets individualitet, såväl som dess fördelar (enkelhet, snabbhet att skapa program, användarvänlighet för färdiga komponenter), när de används i .NET-miljön, är inte lika viktiga som tidigare - allt är fokuserat på funktionerna av själva .NET-plattformen, på dess klassbibliotek. För tillfället (juni 2015) behöver vi prata om Visual Basic, som om de klassiska versionerna av språket 4.0 - 6.0, dess dialekter: Visual Basic for Applications (VBA) och Visual Basic Scripting Edition (VBScript) och språket för .NET-plattformen - Visual Basic .NET
I mars 2020 uppgav Microsoft att de skulle stödja Visual Basic i .NET 5.0 Unified Platform, men att de inte längre skulle lägga till nya funktioner eller utveckla språket [1] [2] .
Variabler i Visual Basic deklareras med en operator Dim, följt av namnet, sedan nyckelordet Asoch sedan typen av variabel. Om typen utelämnas Asanges inte nyckelordet och variabeln deklareras som Variant. Om du inte anger en konstruktion Option Expliciti deklarationsavsnittet krävs ingen explicit deklaration av variabler och de kommer automatiskt att skapas vid första användningen. Detta beteende kan leda till en minskning av programexekveringshastigheten, eftersom odeklarerade variabler kommer att vara av typen Variant, samt logiska fel associerade med felaktig inmatning av namnet på en befintlig variabel eller risken för konflikter i applikationen när omfattningen av variabeln är inte helt klart.
Dim strMessage As String 'deklaration av en variabel av teckentyp Dim iProductCount As Integer 'deklaration av en variabel av heltalstyp Dim dt70YearsOfVictory As Date 'deklaration av en variabel för lagring av datum och tid Dim otherValue ' typ inte specificerad, variabel av typen Variant Public Sub Main () strMessage = "Hej värld!" iProductCount = 125 dt70YearsOfVictory = # 5 / 9 / 2015 14:00:00 # ' datum 9 maj 2015 14:00:00 otherValue = 12,5 ' variabeltyp Variant, subtyp Dubbel. otherValue = "Wikipedia" ' variabeltyp Variant, undertyp String. slut subVisual Basic 6.0 Basic Types Tabell
namn | Typstorlek | Datatyp Beskrivning |
---|---|---|
bytes | 1 byte | Byte. Designad för att lagra heltal från 0 till 255. Om en variabel av denna typ tilldelas ett värde som överskrider dessa gränser, kommer Visual Basic att generera ett körtidsfel. |
Heltal | 2 byte | Hela. Designad för att lagra heltal i intervallet − 32 768 till 32 767 . Suffix för typbeteckning "%". |
Lång | 4 bytes | långt heltal. Designad för att lagra heltal i intervallet − 2 147 483 648 till 2 147 483 647 . Suffix för typbeteckning "&". |
Enda | 4 bytes | Flytpunkt med enkel precision. Område - 3,402823E38 till - 1,401298E−45 för negativa värden; 1.401298E −45 till 3.402823E38 för positiva värden. Suffixet för typbeteckning "!" |
Dubbel | 8 byte | Flytpunkt med dubbel precision. Variabler av denna typ låter dig lagra nummer upp till 16 siffror och upp till 300 tecken långa. Värdeintervallet varierar från -1,80E+308 till 1,80E+308. Suffixet är "#". Beräkningar med det är ungefärliga, eftersom den binära representationen av talet används enligt IEEE 754- standarden . |
Decimal | 16 byte | Skalat heltal. Denna typ använder decimalrepresentation av tal. Beräkningar med den, såväl som med valutatypen, är exakta. Värdeintervallet är från -7,92E+28 till 7,92E+28. Du kan inte direkt deklarera en variabel av typen Decimal. Den kan bara användas som en undertyp av en variant, och en variabel kan castas till den typen med hjälp av cast-funktionen CDec. |
Boolean | 2 byte | Den booleska datatypen kan bara lagra två värden: True eller False, true eller false. Ett sant värde i VB motsvarar ett heltal −1, och ett falskt värde är lika med 0, och med implicit typgjutning behandlas alla andra numeriska värden än noll som sant. Detta beteende gör det möjligt att använda de logiska operatorerna AND, OR, NOT, XORinte bara för boolesk algebra, utan också för bitvisa operationer. [3] |
Sträng | 10 + 2*N byte | Snöre med variabel längd. Designad för att lagra stränginformation (tecken). Strängen i sig lagras i Unicode -kodning , så varje tecken kodas med 2 byte. Om du tittar på typen från insidan, så används ytterligare 4 byte för att lagra en pekare till strängen, 4 byte för storleken på strängen, och själva strängen avslutas med nolltecken (ytterligare 2 byte). Den maximala radstorleken kan alltså vara upp till 2 GB. Suffix som "$". |
Sträng*N | 2*N byte | En sträng med konstant längd. Precis som String-typen lagrar den teckendata, förutom att storleken på data är fast och specificeras när variabeln deklareras. Om strängvärdet är för stort, trunkeras det till önskad storlek. Om strängen är mindre än vad som krävs, utjämnas storleken genom att lägga till ett blanksteg. Det bör noteras att fasta strängar och arrayer, såväl som strukturer, inte kan vara större än 64 kb. |
Datum | 8 byte | Datatypen låter dig lagra tid- och datumvärden mellan midnatt, 1 januari 100 och midnatt, 31 december 9999. Om endast ett datumvärde tilldelas en variabel är klockan 00:00. En heltalsenhet representerar en dag. Detta låter dig lägga till och subtrahera datum med endast matematiska operatorer, men VB tillhandahåller specialiserade datumfunktioner för att åstadkomma detta. |
Objekt | 4 bytes | Används för att lagra en referens till ett objekt. Tilldelning till en variabel för denna typ görs med hjälp av Set. Själva typen är analog med IDispatch, den lagrar en referens till IDispatch-gränssnittet. För alla objekt måste du använda IUnknown. |
Valuta | 8 byte | Monetär. Denna typ kan ha upp till 4 siffror efter decimalkomma och upp till 14 före den. Värdena är decimaltal, inte binära, vilket är fallet för flyttalstyper med enkel och dubbel precision. Således kommer beräkningarna att göras korrekt. Värdeintervallet är −922337203685477.6000 till 922337203685477.6000 . Denna typ är att föredra för ekonomiska beräkningar. Suffix "@" |
Variant | 16 byte / 22 byte+N byte / N-byte | En variabel av typen Variant kan innehålla data av vilken typ som helst, inklusive objektreferenser, användardefinierade typer och arrayer. Visual Basic utför automatiskt nödvändiga datatransformationer . En undertyp som innehåller ett nummer kräver 16 byte minne, och för att lagra strängdata 22 byte + längden på själva strängen. Värdeintervallet är lika med värdeintervallet för undertypen. Denna typ är den långsammaste när det gäller körhastighet, eftersom det tar tid att packa upp och packa värden. |
Visual Basic-språket innehåller många operatorer som är ansvariga för aritmetiska operationer, jämförelse- och tilldelningsoperationer och sammanlänkning .
uppdragsoperatör
Flera tilldelningar, som implementerade i C, är inte möjliga. A = B = Cbetyder inte att A, Boch Ckommer att ha samma värden. VB kommer att utvärdera uttrycket och tilldela resultatet B = Ctill variabeln , eller , 0 eller −1, beroende på typen. ATrueFalse
Aritmetiska operatorer
Jämförelseoperatörer
Logiska operatorer
Sammankopplingsoperatörer
I Visual Basic, som i många programmeringsspråk, finns det konstruktioner som styr i vilken ordning åtgärder utförs. Vissa av konstruktionerna, som GoSuboch Return, behålls för kompatibilitet med tidigare versioner av BASIC-språket, men implementering som separata procedurer kan ge mer strukturerad kod.
FilialoperatörAllmän syntax:
'Skriv en grensats på en rad If < condition > Then [ action_when_condition_is_true ] 'Den här posten låter dig utföra åtgärder beroende på sanningen i villkoret If < condition > Then [ action_when_condition_is true ] Else [ action_when_condition_false ] 'Skriv en grensats med flera rader If < condition > Then [ action_when_condition_is true ] ElseIf < condition2 > Then [ action_when_condition2_true ] ElseIf < conditionN > Then [ action_when_conditionN_true ] Else [ action_when_condition_false ] End If UrvalsoperatorAllmän syntax:
Välj Fall < value_tested > 'Variabel eller uttryck som ska testas mot ett eller flera villkor Fall < value_1 > 'Åtgärd utförs om värdet som testas matchar värde 1 [ action_1 ] Fall < värde_2 > , < värde_3 > , < värde_3 > 'Tester värdelista. Om en matchning hittas, utförs åtgärden [ action_2 ] Fall < value_5 > To < value_6 > 'Kontrollerar värdeintervallet [ action_3 ] Case Is >= < value_7 > 'Kontrollerar värdet för sanning med villkoret [ action_4 ] Case Else 'Åtgärden utförs om inget av villkoren misslyckas [ action_5 ] End SelectExempel: visa olika meddelanden beroende på värdet på en variabel
'Låt oss ange en variabel och ge den ett värde manuellt Dim X As Double X = InputBox ( "Ange det numeriska värdet för variabel X" ) Välj Case X 'Kontrollera om vårt värde passar någon imaginär funktion Case är < 5 , Är >= 20 , 12 Till 15 'Omfång av giltiga värden MsgBox "Ett giltigt värde för någon funktion" Case Else 'Ogiltiga värden MsgBox " Värdet kan inte användas i vissa funktioner" End Select Slinga med räknareAllmän syntax:
För < variabel > = < värde > Till < slutvärde > [ Steg < steg_värde >] [ statement_block ] [ Exit For ] ' Exit loop Next [ variabel ]Exempel: beräkna summan av jämna tal från 1 till 100
För I = 0 Till 100 Steg 2 Summa = Summa + I Nästa Gemensam cykelAllmän syntax:
För varje < variabel > I < samling > [ statement_block ] [ Exit For ] ' Force exit loop Next [ variabel ]Exempel: Visar varje element i en array
Dim strItem som variant För varje strItem I Array ( "Apple" , "Pear" , "Plum" ) Skriv ut strItem Nästa Villkorlig loopAllmän syntax:
Do While < condition > 'Slingan exekveras när villkoret är sant [ statement_block ] [ Exit Do ] 'Tvingad utgång från slingan Gör tills < villkor > 'Slingan exekveras när villkoret är falskt [ statement_block ] [ Exit Do ] Loop While < condition > 'Slingan exekveras när villkoret är sant [ statement_block ] WendExempel: Läsa en textfil rad för rad
Öppna "file.txt" för inmatning som # 1 Do While Not EOF ( 1 ) 'Return True om slutet av filen förväntas Rad Input # 1 , strBuffer 'Läs rad i Debug variabel . Skriv ut strBuffer 'Utmatning till felsökningsfönster Loop Close # 1 Slinga med postconditionAllmän syntax:
Gör [ statement_block ] [ Exit Do ] Loop medan < condition > Gör [ statement block ] [ Exit Do ] Loop Tills < condition >Subrutiner är en av grundelementen i språket. De är procedurer och funktioner.
Visual Basic implementerar faktiskt Windows-meddelandeslingan. I formulärexemplet kommer slingan att filtrera meddelandet WM_MOUSEMOVEoch automatiskt anropa proceduren Form_MouseMovemed parametrarna: vilka musknappar som trycktes ner, pekarkoordinater. Denna mekanism döljer vissa aspekter av programmering i Windows-miljön för utvecklaren, vilket gör att han omedelbart kan börja skriva kommersiell kod. I de flesta fall kommer den klass av uppgifter som ska lösas inte att kräva att programmeraren känner till meddelanden och fönsterfunktioner. Men Visual Basic hindrar inte programmeraren från att implementera hantering av fönstermeddelanden. Detta möjliggör ett mycket flexibelt tillvägagångssätt för att bygga applikationer, men det kräver också tillräcklig erfarenhet för att skriva sådan kod, vilket kan göra att programmet körs instabilt upp till en krasch.
Ett exempel på en funktion för att lösa en andragradsekvation:
Privat Sub Main () Dim RetX1 As Double , RetX2 As Double Dim strStatus As String strStatus = SolveQuadraticEquation ( 4 , 6 , 2 , RetX1 , RetX2 ) 'Lös ekvationen 4*X^2 + 6*X - 2 = 0 'Visa svar MsgBox "Upplösning: " & strStatus & vbCrLf & _ "X1 = " & RetX1 & vbCrLf & _ "X2 = " & RetX2 , vbInformation End Sub ' Andragradsekvation Lös Funktion Offentlig funktion Lös Kvadratekvation ( ByVal A As Double , _ ByVal B As Double , _ ByVal C As Double , _ ByRef X1 As Double , _ ByRef X2 As Double ) As String Dim D As Double D = ( B * B ) - ( 4 * A * C ) 'Få värdet av diskriminanten Om D >= 0 Då X1 = ( - B - Sqr ( D )) / ( 2 * A ) ' Beräkna rötterna till ekvationen X2 = ( - B + Sqr ( D )) / ( 2 * A ) SolveQuadraticEquation = "Lösning hittad" 'Funktionen returnerar ett meddelande om lösningen Else SolveQuadraticEquation = "Diskriminant < 0. Inga rötter" End If End -funktionI det här exemplet kan du se modifieraren framför ByValargumenten A, Boch C. Detta säkerställer att parametrarna till funktionen kommer att skickas med värde . Modifieraren ByRef, å andra sidan, skickar värdet genom referens . För denna typ av modifierare kan funktionen modifiera värdena för variabler som skickas som parametrar. Visual Basic skickar som standard alltid värden genom referens om ingen av modifierarna angavs.
Programkod i Visual Basic lagras i moduler. Det finns bara tre typer av moduler: formulärmodul (Form), standardmodul (Module) och klassmodul (Klassmodul).
Enkel interaktion mellan objekt är en av grundkomponenterna i Visual Basic-paradigmet. Själva objektet kallas en instans av klassen . VB-objektmodellen tillhandahåller olika klasser för att arbeta med formulär, kontroller, urklipp, samlingar, skärmen etc. För att interagera med andra objekt ger klassen utvecklaren ett gränssnitt som består av egenskaper , metoder och händelser .
Att skapa ett nytt objekt från en klass är möjligt genom tidig eller sen bindning. För tidig bindning används nyckelordet Newföre klassnamnet. För sen bindning används en funktion CreateObjectsom returnerar en referens till det skapade objektet. Referenser tilldelas variabler av typen Objectmed hjälp av operatorn Set. Tillgång till metoder och egenskaper för en klass sker genom punktoperatorn ., som placeras omedelbart efter variabelnamnet för objekttypen. Om klassen innehåller händelser deklareras variablerna med nyckelordet WithEvents, så att händelsehanteringsprocedurerna blir tillgängliga.
Exemplet visar hur programmet interagerar med Microsoft Scripting Runtime- biblioteket , som tillhandahåller objekt för att arbeta med filsystemet:
Public Sub Main () Dim objFSO As New FileSystemObject 'Skapa en instans av klassen med hjälp av New Dim objWindows As Folder -satsen Ställ in objWindows = objFSO . GetFolder ( Environ ( "SYSTEMROOT" )) 'Anropa klassmetoden GetFolder och tilldela en referens till det resulterande objektet MsgBox "Windows-mapp: " & objWindows . Sökväg 'Läs egenskaperna för MsgBox- klassen "Datum skapat: " & Format ( objWindows . DateCreated , "ÅÅÅÅ-MM-DD H:mm:ss" ) Dim sTextFilePath As String Dim objTS As TextStream sTextFilePath = objFSO . BuildPath ( Environ ( "TEMP" ), "Test file.txt" ) 'Metod med två parametrar returnerar ett värde av typen String Ställ in objTS = objFSO . CreateTextFile ( sTextFilePath , True ) objTS . Skriv "Hej Wikipedia!" objTS . stänga objFSO . DeleteFile sTextFilePath , True Set objFSO = Ingenting 'Att tilldela ingenting släpper referensen och objektet kan anropa destruktorproceduren Set objWindows = Ingenting 'VB anropar automatiskt destruktorn när objektet inte längre refereras . Set objTS = Ingenting End SubVisual Basic låter utvecklaren skapa nya klasser själv. Till skillnad från andra programmeringsspråk som Java och C++ har Visual Basic inte fullt stöd för OOP.
Som ni vet behövs en abstrakt klass för att tillhandahålla en mall för ett gränssnitt till andra klasser. I Visual Basic kan klasser som har klassmedlemmar men ingen implementering användas som abstrakta klasser, men det är de faktiskt inte. Du kan alltid skapa objekt från Visual Basic-klasser, även om de inte innehåller kod [4]
Principen för inkapsling fungerar i Visual Basic. För att avgränsa åtkomst till klassmedlemmar används modifierarna Public, Privateoch Friendnär de beskriver procedurer, funktioner, konstanter, variabler och användardefinierade typer.
Implementeringsarv stöds inte. Visual Basic ger endast stöd för gränssnittsarv viaImplements. När man ärver ett gränssnitt kan vilken klass som helst fungera som gränssnittets basklass. I allmänhet kan vilken klass som helst fungera som basklass för ett gränssnitt.
Polymorfism upprätthålls endast genom gränssnitt, eftersom VB inte stöder nedärvning. Implementeringen av polymorfism visas i exemplet med bil- och flygplansklasserna som implementerar gränssnittet för transportklassen .
'Klass ITransport.cls Public Function GetMaxSpeed () Som Long End - funktion 'Class CAuto.cls Implementerar ITransport 'Inherit-gränssnitt Privat funktion ITransport_GetMaxSpeed () Så länge ' Metodimplementering ITransport_GetMaxSpeed = 240 Slutfunktion 'Class CFly.cls implementerar ITransport Privat funktion ITransport_GetMaxSpeed ( ) Så länge ITransport_GetMaxSpeed = 700 slutfunktion 'Standardmodul Program.bas Alternativ Explicit Public Sub Main () Dim T As ITransport 'Deklarera en variabel av typen ITransport Set T = New cAuto WhatTransportSpeed T 'Vi skickar en referens till en procedur som kommer att anropa den önskade klassmetoden, beroende på implementeringen Set T = New cFly WhatTransportSpeed T End Sub 'Funktionen har ett argument som tar en referens till ett objekt som implementerar ITransport-gränssnittet. Public Sub WhatTransportSpeed ( Transport As ITransport ) MsgBox "Maximum speed: " & Transport . GetMaxSpeed () End SubKodredigeraren är en textredigerare med ytterligare funktioner för enkel och snabb inmatning av källkod:
Den integrerade utvecklingsmiljön ger programmeraren rika möjligheter för felsökning av program. En av fördelarna med Visual Basic är möjligheten att ändra programmets källkod i stor utsträckning utan att helt kompilera om och starta om det. Under felsökningsprocedurer ges utvecklaren möjlighet att flytta markören som indikerar den instruktion som körs för närvarande, både framåt - hoppa över en del av koden och bakåt - vilket tvingar VB att köra om instruktionerna som redan har bearbetats.
Miljön tillhandahåller bland annat felsökningsverktyg som omedelbart fönster, lokalbefolkningsfönstret, bevakningsfönstret och Call Stack Viewer . Sådana avancerade verktyg gör det möjligt för programmeraren att göra en djupgående analys av algoritmen som studeras i applikationen som felsöks.
Visual Basic går in i felsökningsläge när något av följande villkor är sant:
Den integrerade utvecklingsmiljön kommer med en kompilator i P-Code (P-code) , en inbyggd Back-End x86-kompatibel kompilator och en länkare (länkare). Närvaron av två kompilatorer gör det möjligt att tillskriva Visual Basic till både ett kompilerat och ett tolkat språk. Oavsett vilken kompilator som väljs kräver applikationer den virtuella körningsmaskinen Visual Basic för att köras, vilket är biblioteket MSVBVMXX.DLL, där XX är språkversionen [5]
Microsoft Visual Basic 6.0 kommer med paket- och distributionsguiden [6] för att skapa installationspaket baserade på ett Visual Basic-projekt. Jämfört med sin välkända föregångare, Setup Wizard, ger P&D Wizard ny funktionalitet, men tyvärr innehåller det nya verktyget några buggar. Ett av problemen med den här applikationen är ett datumkonverteringsfel om språkinställningen i användarens operativsystem skiljer sig från den amerikanska. Det finns tredjepartsprogram som tillhandahåller mer avancerade verktyg för att hantera installationspaket.
Det är också möjligt att installera VB-applikationer genom enkel kopiering, vilket kokar ner till några steg:
Från och med version VB 5.0 ges utvecklaren möjligheten att inte bara använda färdiga ActiveX -komponenter utan också att skapa sina egna. VB tar hand om allt arbete med att skapa hjälpkod som är designad för att registrera information om komponenten i systemregistret, implementera IDispatch-gränssnittet, skapa unika GUID:er som används som identifierare för klasser (CLSID), gränssnitt (IID) och typbibliotek ( LIBID). Tack vare detta tillvägagångssätt behöver programmeraren bara skapa klasser med nödvändig funktionalitet.
Skapandet av nya klass- och gränssnitts-GUID:er beror på det inställda kompatibilitetsalternativet på fliken projektegenskaper. Det kan ta ett av tre tillstånd:
När kompileringen är klar kommer utdata att vara en binär biblioteksfil enligt COM -specifikationen . Denna komponent implementerar minst två gränssnitt : IUnknown och IDispatch. Typbiblioteket ( TLB ) kommer att integreras i resurserna för den körbara filen. Dessutom skapas filer med användbar information, såsom EXP och LIB.
Visual Basic tillhandahåller språkfaciliteter för att deklarera och anropa funktioner från dynamiska länkbibliotek (DLL). Denna mekanism låter dig utöka applikationer genom att använda ytterligare bibliotek från andra utvecklare, inklusive de som är skrivna på olika programmeringsspråk. En sådan uppsättning bibliotek tillhandahålls av operativsystemet Microsoft Windows.
Den allmänna syntaxen för en funktions- och procedurdeklaration är följande:
[ Offentlig | Privat ] Deklarera Sub < procedure_name > lib "dynamic_library_name" [ Alias "alias" ] [ ( parametrar ) ] [ Offentlig | Privat ] Deklarera Funktion < function_name > lib "dynamic_library_name" [ Alias "alias" ] [ ( parametrar ) ] [ Som returtyp ]Alias måste anges i ett antal fall: användning av Visual Basic reserverade identifierare i funktionsnamnet, namnet innehåller ogiltiga tecken eller kan inte tolkas korrekt av miljön. Anropade funktioner måste stödja StdCall- anropskonventionen .
När en parameter med String-typen skickas till WINAPI-funktionen konverterar VB automatiskt kodningen från Unicode till ANSI, efter att funktionen exekveras sker den omvända konverteringen från ANSI till Unicode. För att förhindra automatisk strängkonvertering måste funktionsargumenten deklareras som långa och en pekare till en sträng måste skickas med funktionen StrPtr, så att prestandan för en applikation som gör flera funktionsanrop kan optimeras.
Ett exempel på att anropa Windows API för att få den fullständiga sökvägen till Windows-katalogen och visa ett meddelande på skärmen:
Private Declare - funktion GetWindowsDirectory Lib "kernel32.dll" Alias "GetWindowsDirectoryA" ( ByVal buffer As String , ByVal nSize As Long ) As Long Private Declare - funktion MessageBox Lib "user32.dll" Alias "MessageBoxA " ( ByVal hWnd As , ByVal lpText As String , ByVal lpCaption As String , ByVal wType As Long ) As Long Private Const MB_ICONASTERISK Så länge = 64 Public Sub Main () Dim buffer As String 'Variabeln i vilken resultatet av funktionen kommer att tas emot. Dim ret Len As Long buffer = String ( 256 , vbNullChar ) lins = GetWindowsDirectory ( buffert , Len ( buffert )) ' Funktionsanrop buffert = Vänster ( buffert , lins ) MessageBox 0 & , "OS installerat i katalogen: " & buffert , "Information" , MB_ICONASTERISK ' Avsluta subfunktionsanropDet bör noteras att anrop av WINAPI-funktioner är associerat med vissa interna överenskommelser, nämligen hur funktionen kommer att returnera ett resultat, vilka strukturer den behöver passera, antalet argument och deras typer, som kommer att finnas i returvärdet. Utvecklare använder den tekniska dokumentationen som medföljer biblioteken de arbetar med för att korrekt deklarera funktioner och strukturer.
Språket är starkt knutet till sin utvecklingsmiljö och till operativsystemet Microsoft Windows, som uteslutande är ett verktyg för att skriva Windows-applikationer. Bindningen till miljön ligger i det faktum att det finns ett stort antal verktyg utformade för att hjälpa och underlätta programmering: en inbyggd debugger, visning av variabler och datastrukturer i farten, ett felsökningsfönster, verktygstips när du skriver ett program ( IntelliSense ). Alla dessa fördelar gör det värdelöst och till och med omöjligt att använda Visual Basic utanför utvecklingsmiljön, till exempel i en vanlig textredigerare.
Det är dock värt att notera att alla brister i språket härrör från dess främsta fördel - enkelheten att utveckla ett grafiskt gränssnitt. Därför använder många programmerare Visual Basic för att utveckla användargränssnittet, och programfunktionaliteten implementeras som dynamiska länkbibliotek ( DLL ) skrivna på andra språk (till exempel C++ ).
Denna utvecklingsmiljö skiljer sig praktiskt taget inte från den klassiska Visual Basic, som är designad för att skriva makron och andra applikationsprogram för specifika affärsapplikationer. Fick störst popularitet på grund av dess användning i Microsoft Office -paketet . Den utbredda användningen av Visual Basic for Applications, tillsammans med en initial brist på uppmärksamhet på säkerhetsfrågor, har lett till utbredda makrovirus .
Egenheter:
Skriptspråk , som är en något trunkerad version av den vanliga Visual Basic. Används främst för att automatisera administrationen av Microsoft Windows-system och för att skapa ASP- sidor och skript för Internet Explorer .
Egenheter:
Detta verktyg används för att utveckla programvara för Windows CE och Windows Mobile operativsystem . Inkluderar IDE, debugger och emulator för applikationstestning. eMbedded Visual Basic är inte baserat på det fullfjädrade programmeringsspråket Visual Basic, utan på skriptspråket Visual Basic Scripting Edition . Applikationer kompileras till P-kod och körbara filer har tillägget VB, som är associerade med värdapplikationen.
Egenheter:
BASIC | Dialekter av programmeringsspråket|
---|---|
Klassisk |
|
övergångsperiod |
|
processuella |
|
Objekt |
|
Mobil |
|
Trösta |
|
Programmeringsspråk | |
---|---|
|