Visual Basic (klasyczny)

Visual Basic
Visual Basic 6.0 logo.png
Visual Basic 6.0 on Windows XP.png
Visual Basic 6.0 IDE działający w systemie Windows XP
Paradygmat Oparte na obiektach i sterowane zdarzeniami
Deweloper Microsoftu
Po raz pierwszy pojawiły się maj 1991 ; 31 lat temu ( 1991-05 )
Ostateczne wydanie
6.0 / 1998 ; 25 lat temu ( 1998 )
Dyscyplina pisania Statyczny , mocny
system operacyjny Microsoft Windows i MS-DOS
Strona internetowa poznaj .microsoft .com /en-us /previous-versions /visualstudio /visual-basic-6 /visual-basic-6 .0-documentation
Główne wdrożenia
Microsoft Visual Studio
Pod wpływem
BASIC
Pod wpływem
Visual Basic .NET , Visual Basic for Applications , Windows Forms , Gambas , Xojo , Basic4ppc , Basic4android i NS Basic

Oryginalny Visual Basic (nazywany również Classic Visual Basic ) to sterowany zdarzeniami język programowania trzeciej generacji firmy Microsoft , znany z modelu programowania Component Object Model (COM), który został wydany po raz pierwszy w 1991 r. być stosunkowo łatwy do nauczenia się i używania. Visual Basic wywodzi się z języka BASIC i umożliwia szybkie tworzenie aplikacji (RAD) z graficznym interfejsem użytkownika (GUI) aplikacji, dostęp do baz danych przy użyciu obiektów Data Access Objects , Remote Data Objects lub ActiveX Data Objects oraz tworzenie formantów i obiektów ActiveX .

Programista może stworzyć aplikację przy użyciu komponentów dostarczonych przez sam program Visual Basic. Z biegiem czasu społeczność programistów opracowała komponenty firm trzecich. Programy napisane w języku Visual Basic mogą również korzystać z interfejsu API systemu Windows , który wymaga deklaracji funkcji zewnętrznych.

Ostatecznym wydaniem była wersja 6 w 1998 r. 8 kwietnia 2008 r. Microsoft przestał wspierać Visual Basic 6.0 IDE . Zespół Microsoft Visual Basic nadal zapewnia zgodność aplikacji Visual Basic 6.0 za pośrednictwem programu „It Just Works” w obsługiwanych systemach operacyjnych Windows.

W 2014 roku niektórzy programiści nadal woleli Visual Basic 6.0 od jego następcy, Visual Basic .NET . Visual Basic 6.0 został wybrany jako najbardziej przerażający język programowania przez respondentów corocznej ankiety dla programistów Stack Overflow w 2016, 2017 i 2018 roku.

Dialekt Visual Basic, Visual Basic for Applications (VBA), jest używany jako język makr lub skryptów w kilku aplikacjach firmy Microsoft i ISV , w tym Microsoft Office .

Funkcje językowe

Podobnie jak język programowania BASIC , Visual Basic został zaprojektowany z myślą o łatwej nauce . Programiści mogą tworzyć zarówno proste, jak i złożone GUI . Programowanie w języku VB to połączenie wizualnego rozmieszczania komponentów lub kontrolek w formularzu , określania atrybutów i działań dla tych komponentów oraz pisania dodatkowych wierszy kodu w celu zwiększenia funkcjonalności. Ponieważ VB definiuje domyślne atrybuty i akcje dla komponentów, programista może opracować prosty program bez pisania dużej ilości kodu. Programy zbudowane we wcześniejszych wersjach miały problemy z wydajnością, ale szybsze komputery i natywna kompilacja kodu sprawiły, że problem ten był mniejszy. Chociaż programy VB można kompilować do natywnych plików wykonywalnych kodu od wersji 5 nadal wymagają obecności około 1 MB bibliotek wykonawczych. Podstawowe biblioteki środowiska wykonawczego są domyślnie dołączone do systemu Windows 2000 i nowszych, ale nadal należy zainstalować komponenty rozszerzonego środowiska wykonawczego. Wcześniejsze wersje systemu Windows (95/98/NT) wymagają dystrybucji bibliotek wykonawczych wraz z plikiem wykonywalnym.

Pusty formularz w Visual Basic 6

Formularze są tworzone przy użyciu technik „przeciągnij i upuść” . Narzędzie służy do umieszczania kontrolek (np. pól tekstowych, przycisków itp.) na formularzu (oknie). Kontrolki mają powiązane atrybuty i procedury obsługi zdarzeń . Wartości domyślne są podawane podczas tworzenia kontrolki, ale mogą być zmienione przez programistę. Wiele wartości atrybutów można modyfikować w czasie wykonywania w oparciu o działania użytkownika lub zmiany w środowisku, zapewniając dynamiczną aplikację. Na przykład kod można wstawić do procedury obsługi zdarzenia zmiany rozmiaru formularza, aby zmienić położenie kontrolki w taki sposób, aby pozostawała wyśrodkowana na formularzu, rozwijała się w celu wypełnienia formularza itp. Wstawiając kod do procedury obsługi zdarzenia dla naciśnięcia klawisza w polu tekstowym, program może automatycznie przetłumaczyć wielkość liter wprowadzanego tekstu, a nawet uniemożliwić wstawienie niektórych znaków.

Visual Basic potrafi tworzyć pliki wykonywalne (pliki EXE), formanty ActiveX , lub DLL, ale jest używany głównie do tworzenia aplikacji Windows i do łączenia się z systemami baz danych. Okna dialogowe o mniejszej funkcjonalności mogą służyć do udostępniania funkcji wyskakujących okienek. Kontrolki zapewniają podstawową funkcjonalność aplikacji, podczas gdy programiści mogą wstawić dodatkową logikę do odpowiednich procedur obsługi zdarzeń. Na przykład rozwijane pole kombinacji automatycznie wyświetla listę. Gdy użytkownik wybierze element, wywoływana jest procedura obsługi zdarzenia, która wykonuje kod utworzony przez programistę w celu wykonania akcji dla tego elementu listy. Alternatywnie składnik Visual Basic może nie mieć interfejsu użytkownika i zamiast tego udostępniać obiekty ActiveX innym programom za pośrednictwem Składnikowy model obiektowy (COM). Pozwala to na po stronie serwera lub moduł dodatkowy.

Środowisko uruchomieniowe odzyskuje nieużywaną pamięć za pomocą liczenia odwołań , które zależy od tego, czy zmienne przechodzą poza zakres lub są ustawione na Nothing , unikając problemu wycieków pamięci , które są możliwe w innych językach. Istnieje duża biblioteka obiektów użytkowych, a język zapewnia podstawową obsługę programowania obiektowego . W przeciwieństwie do wielu innych języków programowania, Visual Basic generalnie nie rozróżnia wielkości liter — chociaż przekształca słowa kluczowe w standardową konfigurację wielkości liter i wymusza zgodność wielkości liter nazw zmiennych z wielkością liter wpisu w tablicy symboli. W porównaniach ciągów domyślnie rozróżniana jest wielkość liter. Kompilator Visual Basic jest współużytkowany z innymi językami Visual Studio (C, C++). Niemniej jednak domyślnie ograniczenia w IDE nie pozwalają na tworzenie niektórych celów (biblioteki DLL modelu Windows) i modeli wątków, ale przez lata programiści omijali te ograniczenia.

Charakterystyka

Okna kodu w języku Visual Basic przedstawiające funkcję przy użyciu instrukcji If, Then, Else i Dim

Visual Basic opiera się na cechach języka BASIC.

  • Zamiast być identyfikowany przez sam numer linii, kod może być pogrupowany w nazwane podprogramy lub metody: Sub...End Sub . Visual Basic obsługuje numery wierszy dodane przez użytkownika do wersji 6 lub nowszej.
  • Instrukcje kodowe nie mają znaku kończącego innego niż zakończenie wiersza (powrót karetki/wysunięcie wiersza). Wersje od co najmniej VB 3.0 pozwalały, aby instrukcje były niejawnie wielowierszowe z konkatenacją łańcuchów lub jawnie przy użyciu znaku podkreślenia (_) na końcu linii.
  • Komentarze do kodu są tworzone za pomocą pojedynczego znaku apostrofu ('), na przykład: „To jest komentarz.
  • Zapętlone bloki instrukcji zaczynają się i kończą słowami kluczowymi: Do...Loop, While...End While, For...Next .
  • Przypisanie wielu zmiennych nie jest możliwe. A = B = C nie oznacza, że ​​wartości A, B i C są równe. Wynik logiczny „Czy B = C?” jest przechowywany w A. Wynik przechowywany w A byłby zatem albo fałszywy, albo prawdziwy.
  • Stała logiczna True ma wartość liczbową −1. Dzieje się tak, ponieważ typ danych Boolean jest przechowywany jako uzupełnienia do dwóch . W tym konstrukcie -1 daje wynik binarny all-1s (wartość logiczna True ), a 0 jako all-0 (wartość logiczna False ). Jest to widoczne podczas wykonywania (bitowej) Not na wartości uzupełnienia do dwóch 0, która zwraca wartość uzupełnienia do dwóch -1, innymi słowy prawda = nie fałsz . Ta nieodłączna funkcjonalność staje się szczególnie przydatna podczas wykonywania operacji logicznych na poszczególnych bitach liczby całkowitej, takiej jak And , Or , Xor i Not . Ta definicja True jest również zgodna z BASIC-em od wczesnych lat 70. implementacji Microsoft BASIC i jest również związana z charakterystyką instrukcji procesora w tamtym czasie.
  • Operatory logiczne i bitowe są ujednolicone. Różni się to od niektórych języków wywodzących się z C (takich jak Perl ), które mają oddzielne operatory logiczne i bitowe. To znów jest tradycyjna cecha języka BASIC.
  • zmiennej tablicy . Tablice są deklarowane poprzez określenie górnej i dolnej granicy w sposób podobny do Pascala i Fortrana . Możliwe jest również użycie instrukcji Option Base do ustawienia domyślnej dolnej granicy. Użycie instrukcji Option Base może prowadzić do nieporozumień podczas odczytywania kodu Visual Basic i najlepiej tego unikać, zawsze jawnie określając dolną granicę tablicy. Ta dolna granica nie jest ograniczona do 0 lub 1, ponieważ może być również ustawiona przez deklarację. W ten sposób zarówno dolna, jak i górna granica są programowalne. W językach z większą liczbą indeksów dolnych dolna granica tablicy nie jest zmienna. Ta niezwykła cecha istnieje w Visual Basic .NET , ale nie w VBScript .
OPTION BASE została wprowadzona przez ANSI wraz ze standardem ANSI Minimal BASIC pod koniec lat siedemdziesiątych.
  • Stosunkowo silna integracja z systemem operacyjnym Windows i Component Object Model . Rodzimymi typami łańcuchów i tablic są dedykowane typy COM, BSTR i SAFEARRAY.
  • Zaokrąglanie bankiera jako domyślne zachowanie podczas konwersji liczb rzeczywistych na liczby całkowite za pomocą funkcji Round . ? Round(2.5, 0) daje 2, ? Zaokrąglenie (3,5; 0) daje 4.
  • Liczby całkowite są automatycznie podwyższane do liczb rzeczywistych w wyrażeniach, które zawierają operator dzielenia normalnego ( / ), tak że dzielenie jednej liczby całkowitej przez drugą daje intuicyjnie poprawny wynik. VB udostępnia określony operator dzielenia liczb całkowitych ( \ ), który nie jest obcinany.
  • Domyślnie, jeśli zmienna nie została zadeklarowana lub jeśli nie określono znaku deklaracji typu, zmienna jest typu Variant . Można to jednak zmienić za pomocą instrukcji Deftype, takich jak DefInt , DefBool , DefVar , DefObj , DefStr . W sumie Visual Basic 6.0 oferuje 12 instrukcji Deftype . Domyślny typ może zostać zastąpiony dla określonej deklaracji przez użycie specjalnego sufiksu w nazwie zmiennej ( # dla Double, ! dla Single, & dla Long, % dla Integer, $ dla String i @ dla Currency) lub przy użyciu frazy kluczowej As (type) . VB można również ustawić w trybie, w którym tylko jawnie zadeklarowane zmienne mogą być używane za pomocą polecenia Option Explicit .

Historia

Alan Cooper stworzył projekt typu „przeciągnij i upuść” dla interfejsu użytkownika języka Visual Basic.

Visual Basic 1.0 został wprowadzony w 1991 roku. Projekt interfejsu użytkownika typu „przeciągnij i upuść” wywodzi się z prototypowego generatora formularzy opracowanego przez Alana Coopera i jego firmę o nazwie Tripod . Microsoft zlecił Cooperowi i jego współpracownikom opracowanie Tripoda w programowalny system formularzy dla Windows 3.0 pod kryptonimem Ruby (bez związku z późniejszym językiem programowania Ruby ). Tripod w ogóle nie zawierał języka programowania. Microsoft postanowił połączyć Ruby z językiem Basic, aby stworzyć Visual Basic. Generator interfejsu Ruby zapewnił „wizualną” część Visual Basic, która została połączona z silnikiem „EB” Embedded BASIC zaprojektowanym dla porzuconego systemu baz danych „Omega” firmy Microsoft. Ruby zapewniał również możliwość ładowania bibliotek dołączanych dynamicznie zawierających dodatkowe kontrolki (wówczas zwane „gadżetami”), które później stały się interfejsem VBX .

Oś czasu

Visual Basic dla MS-DOS
Ikona VB DOS

lata 90

  • Projekt „basic Thunder” został zainicjowany w 1990 roku. Thunder przetrwał do ostatniego wydania Visual Basic w nazwie podstawowej funkcji wewnętrznej „ThunderRTMain”.
  • Visual Basic 1.0 (maj 1991) został wydany dla systemu Windows na targach Comdex / Windows World w Atlancie w stanie Georgia.
  • Visual Basic 1.0 dla DOS został wydany we wrześniu 1992 roku. Sam język nie był do końca zgodny z Visual Basic dla Windows, ponieważ była to kolejna wersja kompilatorów BASIC firmy Microsoft opartych na systemie DOS, QuickBASIC i BASIC Professional Development System. Interfejs wykorzystywał tekstowy interfejs użytkownika , używając rozszerzonych znaków ASCII do symulacji wyglądu GUI .
  • Visual Basic 2.0 został wydany w listopadzie 1992 roku. Środowisko programistyczne stało się łatwiejsze w użyciu, a jego szybkość wzrosła. Warto zauważyć, że formy stały się obiektami możliwymi do utworzenia, kładąc w ten sposób fundamentalne koncepcje modułów klas, jakie były później oferowane w VB4.
  • Visual Basic 3.0 został wydany latem 1993 roku i był dostępny w wersjach Standard i Professional. VB3 zawierało wersję 1.1 Jet Database Engine , która mogła odczytywać i zapisywać bazy danych Jet (lub Access) 1.x.
  • Visual Basic 4.0 (sierpień 1995) był pierwszą wersją, która mogła tworzyć zarówno 32-bitowe , jak i 16-bitowe programy Windows. Ma trzy edycje; Standardowy, profesjonalny i korporacyjny. Wprowadził również możliwość pisania klas innych niż GUI w Visual Basic. W VB4 język został oddzielony od biblioteki GUI i udostępniony jako VBA, w tej formie został osadzony w pakiecie Office 95. Aby ułatwić migrację makr i skryptów pakietu Office, do języka włączono funkcje programów WordBasic, Excel Basic i Access Basic. Niezgodności między różnymi wersjami VB4 powodowały problemy z instalacją i obsługą. Podczas gdy poprzednie wersje Visual Basic korzystały z kontrolek VBX, Visual Basic używał teraz kontrolek OLE (z nazwami plików kończącymi się na .OCX). Zostały one później nazwane formantami ActiveX.
  • W wersji 5.0 (luty 1997) Microsoft wypuścił Visual Basic wyłącznie dla 32-bitowych wersji systemu Windows. Programiści, którzy woleli pisać programy 16-bitowe, mogli importować programy napisane w Visual Basic 4.0 do Visual Basic 5.0, a programy Visual Basic 5.0 można łatwo konwertować do Visual Basic 4.0. Visual Basic 5.0 wprowadził również możliwość tworzenia niestandardowych kontrolek użytkownika, a także możliwość kompilacji do natywnego kodu wykonywalnego systemu Windows, przyspieszając wykonywanie kodu wymagającego wielu obliczeń. Wydano również bezpłatną, do pobrania wersję Control Creation Edition do tworzenia formantów ActiveX . Był również używany jako wstępna forma Visual Basic: zwykły projekt .exe można było utworzyć i uruchomić w IDE, ale nie skompilować.
  • Visual Basic 6.0 (połowa 1998 r.) udoskonalono w wielu obszarach, w tym w możliwości tworzenia aplikacji internetowych.

2000s

  • Podstawowe wsparcie dla programu Microsoft Visual Basic 6.0 zakończyło się 31 marca 2005 r., a wsparcie rozszerzone zakończyło się w marcu 2008 r. Jednak podstawowe składniki środowiska programistycznego Visual Basic 6 działają we wszystkich 32-bitowych wersjach systemu Windows, aż do systemu Windows 11 włącznie.

Języki pochodne

Firma Microsoft opracowała pochodne języka Visual Basic do użytku w skryptach . Sam Visual Basic wywodzi się w dużej mierze z języka BASIC , a następnie został zastąpiony wersją platformy .NET .

Niektóre z języków pochodnych to:

Wydajność i inne problemy

Wcześniejsze wersje Visual Basic (przed wersją 5) skompilowały kod tylko do P-Code . Kod P jest interpretowany przez środowisko uruchomieniowe języka. Korzyści z kodu P-Code obejmują przenośność i mniejsze rozmiary plików binarnych, ale zazwyczaj spowalnia on wykonywanie, ponieważ środowisko uruchomieniowe dodaje dodatkową warstwę interpretacji. Aplikacje Visual Basic wymagają środowiska uruchomieniowego Microsoft Visual Basic MSVBVMxx.DLL, gdzie xx to odpowiedni numer wersji, 50 lub 60. MSVBVM60.dll jest standardowo dostarczany z systemem Windows we wszystkich wersjach od Windows 98 do Windows 10 (niektóre wersje systemu Windows 7 nie to uwzględnić). Maszyna z systemem Windows 95 wymagałaby jednak dołączenia do instalatora dowolnej biblioteki DLL potrzebnej programowi. Visual Basic 5 i 6 mogą kompilować kod do kodu natywnego lub P-Code, ale w obu przypadkach środowisko wykonawcze jest nadal wymagane do wbudowanych funkcji i zarządzania formularzami.

Krytyka skierowana do wydań Visual Basic poprzedzających VB.NET obejmuje:

Starszy rozwój i wsparcie

Wszystkie wersje środowiska programistycznego Visual Basic od 1.0 do 6.0 zostały wycofane przez firmę Microsoft do 2008 r. i dlatego nie są już obsługiwane. Powiązane środowiska uruchomieniowe również nie są obsługiwane, z wyjątkiem podstawowego środowiska uruchomieniowego Visual Basic 6, które firma Microsoft oficjalnie obsługuje przez cały okres eksploatacji systemów Windows 8 , Windows 10 i Windows 11 . Składniki innych firm, które zostały dostarczone z programem Visual Studio 6.0, nie są uwzględnione w tym oświadczeniu dotyczącym pomocy technicznej. Niektóre starsze składniki języka Visual Basic mogą nadal działać na nowszych platformach, mimo że nie są obsługiwane przez firmę Microsoft ani innych dostawców. Dokumentacja języka Visual Basic 6.0, jego interfejsu programowania aplikacji i narzędzi jest najlepiej omówiona w ostatnim MSDN wydanie przed Visual Studio.NET 2002. Późniejsze wersje MSDN koncentrowały się na programowaniu .NET i miały usunięte znaczne części dokumentacji programistycznej Visual Basic 6.0 w miarę ewolucji języka, a obsługa starszego kodu została zakończona. Chociaż wsparcie dostawców dla Visual Basic 6 zostało zakończone, a produkt nigdy nie był obsługiwany w najnowszych wersjach systemu Windows, kluczowe części środowiska nadal działają na nowszych platformach. Możliwe jest uzyskanie podzbioru środowiska programistycznego działającego na 32-bitowych i 64-bitowych wersjach systemów Windows Vista, Windows 7, Windows 8, Windows 10 i Windows 11.

Przykładowy kod

Poniższy fragment kodu wyświetla okno komunikatu „Hello, World!” podczas ładowania okna:

  
    
  Private  Sub  Form_Load  ()  ' Uruchom proste okno komunikatu z napisem „Witaj, świecie!”       MsgBox  „Witaj, świecie!” 
 Koniec  sub 

Ten fragment tworzy licznik, który przesuwa się w górę o 1 co sekundę (aby to zadziałało, do formularza należy dodać etykietę i kontrolkę czasomierza), dopóki formularz nie zostanie zamknięty lub nastąpi przepełnienie liczby całkowitej :

 
   
  
      0
       
 
  
        
      
 Option  Explicit  Dim  Count  As  Integer  Private  Sub  Form_Load  ()  Count  =  Timer1  .  Interval  =  1000  ' jednostek milisekund  End  Sub  Private  Sub  Timer1_Timer  ()  Count  =  Count  +  1  Label1  .  Podpis  =  Licz  napis  końcowy  

Zobacz też

Linki zewnętrzne