LEKCJA 48
O PAKIETACH BORLAND C++ 4/4.5.
Z tej lekcji dowiesz się, czy warto kupić nowszą wersję Borland C++ 4/4.5 i jakie niespodzianki czekają Cię po zamianie kompilatora na nowszy.
Czy warto sprawić sobie BORLAND C++ 4/4.5 ?
Kilka słów o tym, co oferuje Borland w pakietach "Borland C++ 4/4.5" i jakie niespodzianki czekają nowych użytkowników przy instalacji i uruchamianiu. Wymagania sprzętowe i instalacja Aby instalacja i użytkowanie pakietu przebiegało poprawnie, zaleca się następującą konfigurację sprzętu: Wymagania sprzętowe Borland C++ 4.
Parametr minimum zalecane (pełna konfig.)
* procesor 80386/33 MHZ 486 DX (lub 386 + 387)
* miejsce na dysku 8 MB 80 MB (bez kompresji)
* pamięć RAM 4 MB 8 MB i więcej
* system DOS 4.01 DOS 6.0...6.22
* MS Windows 3.1 Windows NT
Częściowa instalacja Borland C++ 4.
Konfiguracja Dysk
1. Kompilator BCC 16 bitowy (D+W) 9 MB
2. Kompilator BCC 32 bitowy (D+W) 13 MB
3. Środowisko IDE 16 bitowe 26 MB
4. Środowisko IDE 32 bitowe 30 MB
5. Tylko dla DOS (minimum) 8 MB
* D+W - dla DOS i Windows
Można próbować zainstalować Borland C++ 4 na małym dysku, można także ograniczyć się do 4 MB RAM, ale generowanie 32-bitowych aplikacji będzie wtedy znacznie utrudnione a praca kompilatora wolniejsza. W przypadku stosowania kompresorów (np. SUPERSTOR, DOUBLE SPACE) należy pamiętać, że wtórna kompresja plików jest mało skuteczna i dysk zgłaszany jako 80 MB może okazać się "ciasny". Borland C++ 4 można instalować z dyskietek, bądź z CD-ROM. Ponieważ pakiet BC++ 4 jest "okienkowo - zorientowany", nawet program instalacyjny wymaga obecności Windows. Uruchomienie programu instalacyjnego następuje zatem z poziomu Menedżera programów rozkazem File | Run... (w spolszczonej wersji Windows - Plik | Uruchom...) lub z DOS-owskiego wiersza rozkazu:
C:\>WIN X:INSTALL
Opcji jest trochę więcej - o najciekawszych z nich - kilka słów poniżej. Warto zwrócić uwagę na tzw. "rozszerzenie dla Windows" (extention to MS Windows) - Win32s. W programie INSTALL.EXE do zainstalowania tego pakietu (pakiet jest oryginalnym produktem Microsofta i wymaga 8 MB przestrzeni dyskowej) służy opcja [Install Win32s]. Najważniejszy plik-driver instaluje się w pliku SYSTEM.INI:
device=X:\WINDOWS\SYSTEM\WIN32S\W32S.386
Pozwala to na uruchamianie 32 - bitowych aplikacji pod Windows 3.1. Jeśli masz Windows NT - jest to zbędne - o ten "drobiazg" zadbał już Microsoft. W przypadku instalacji w sieci, gdzie Windows zainstalowane są na serwerze należy pamiętać, że BC++ 4 w trakcie instalacji modyfikuje nie tylko klasyczne parametry systemu:
FILES=40
BUFFERS=40
PATH=...;X:\BC4\BIN;
ale także pliki konfiguracyjne i inicjacyjne w katalogu WINDOWS:
WIN.INI, PROGMAN.INI, SYSTEM.INI,
oraz tworzy nowe własne pliki, które będzie próbował zapisać w atalogach \WINDOWS i \WINDOWS\SYSTEM, np. BCW.INI, TDW.INI, HELP.ICO, OWL.INI, BWCC.DLL, itp. (łącznie 18 nowych plików). Brak prawa zapisu na dysk serwera może uniemożliwić poprawną instalację i skonfigurowanie BC++ 4/4.5 w sieci. Borland wraz z wersjami bibliotek dostarcza komplet kodów źródłowych. Jeśli chcesz - możesz sam wygenerować sobie całą bibliotekę, jeśli chcesz - możesz na własne oczy przekonać się jak to wszystko działa i jak jest zbudowane. Oprócz teoretycznych możliwości poznawczych daje to praktyczną możliwość dostosowania bibliotek do nowej wersji kompilatora, co w przypadku "czwórki" może okazać się dla wielu użytkowników bardzo przydatne (o czy dokładniej za chwilę). Oprócz klasycznego paska głównego menu zintegrowane środowisko (IDE) zostało wyposażone w rozbudowaną listwę narzędziową.
W skład pakietu wchodzą między innymi:
* BCW - zintegrowane środowisko (IDE) dla środowiska Windows
* TDW - Turbo Debugger for Windows
* BCC - kompilator uruchamiany z DOS'owskiego wiersza rozkazu
* BCC32 - kompilator 32 - bitowy (odpowiednik BCC)
* BRCC - kompilator zasobów do kompilacji plików *.RC z zasobami do postaci binarnej *.RES
* RLINK - konsolidator służący do dołączania plików z zasobami przy tworzeniu plików wykonywalnych *.EXE
* TLINK - "zwykły" konsolidator
* MAKE - program narzędziowy do automatyzacji kompilacji i konsolidacji, korzystający z tzw. plików instruktażowych (emulujący NMAKE Microsofta)
* WINSIGHT - przeglądanie informacji o okienkach (dla Windows) i komunikatach
* TDUMP - bezpośrednie przeglądanie informacji zawartych w plikach *.EXE i *.OBJ
* TDSTRIP - narzędzie do usuwania tablicy symboli z plików wykonywalnych
* IMPLIB - importer bibliotek z DLL
* TDMEM - wyświetlanie informacji o zajętości pamięci
* MAKESWAP - zarządzanie swapowaniem (tworzenie plików tymczasowych EDPMI.SWP o zadanej wielkości)
i jeszcze parę narzędzi (np. tradycyjny bibliotekarz TLIB, TOUCH, GREP, itp.), o których tu nie wspominam.
Czego robić nie należy?
Przede wszystkim nie należy traktować Borland C++ 4/4.5 jako "upgrade" do wcześniejszych wersji (3, czy 3.1). W kompilatorze dokonano sporych zmian (np. inaczej działa operator new). Nie wolno zatem "nadpisać" zawartości poprzednich katalogów i plików o tych samych nazwach. Szczególnie dotyczy to plików konfiguracyjnych BCCONFIG.BCW i TDCONFIG.TDW. Jeśli stare wersje tych plików nie zostaną przemianowane, bądź usunięte z pola widzenia (PATH) - pojawią się konflikty przy uruchamianiu BC++. Ze względu na wprowadzone zmiany pliki .OBJ tworzone przez wcześniejsze kompilatory C będą w zasadzie przenośne, natomiast pliki .OBJ i biblioteki utworzone przez wcześniejsze wersje kompilatorów C++ (szczególnie Borland C++ 3.1) będą sprawiać kłopoty (nie będą np. poprawnie wywoływane destruktory). Przy konsolidacji "starych" plików można stosować opcję -K2 konsolidatora, co pozwoli zmniejszyć do minimum ryzyko konfliktów.
Jeśli jest już Borland Pascal 7...
Jeśli masz już zainstalowany Borland Pascal 7 należy pamiętać, że poprawna praca obu kompilatorów w jednym systemie wymaga "uregulowania stosunków":
1. Każdy kompilator musi mieć własną kopię debuggera TDW. Aby uniknąć konfliktu pascalowski debugger można przemianować np.:
TDW.EXE --> PASTDW.EXE
2. Należy usunąć stare pliki inicjujące TDW.INI. Można tu posłużyć się narzędziem TDWINI.EXE.
3. Należy sprawdzić poprawność instalacji driverów w pliku SYSTEM.INI:
DEVICE=X:\BC4\BIN\WINDPMI.386
DEVICE=X:\BC4\BIN\TDDEBUG.386 <-- tu możliwy konflikt z BP 7
Należy usunąć dublujące się instalacje pozostawiając tylko te z BC++ 4 oraz usunąć pascalowskie TDDEBUG.386 (pas) i TDWIN.DLL by uniemożliwić omyłkowe zainstalowanie. Przy poprawnym skonfigurowaniu systemu pozostałe zasoby ( w tym np. Resource Workshop 4) będą poprawnie współpracować z BP 7.
Stare zasoby C++
Zapewne większość użytkowników Borland C++ 4 "przesiądzie się" z BC++ 3/3.1 lub Turbo C++. I tu także czychają pewne niebezpieczeństwa. Stare projekty - tradycyjnie .PRJ w BC++ 4 zyskują nowe domyślne rozszerzenie .IDE. W okienku dialogowym zarządzania projektem: Project | Open... przy pomocy opcji
[3.1 Project Files (*.prj)]
można dokonać automatycznej konwersji do formatu .IDE, przy czym stara wersja pliku *.PRJ pozostanie bez zmian. Niektóre stare kody źródłowe będą wymagać drobnych modyfikacji. Szczególnie należy zwróćić uwagę na:
- nakładki (overlay support)
- zarządzanie pamięcią (new - delete)
- informacje diagnostyczne w plikach (debug info)
- zmianne pseudorejestrowe (dostępne teraz tylko w niektórych trybach)
O bibliotece Turbo Vision.
Biblioteka Turbo Vision Library - TV.LIB współpracująca poprawnie z BC++ 3.0/3.1 powinna zostać powtórnie skompilowana, ponieważ BC++ 4 stosuje inny format:
- informacji diagnostycznych (debug info format)
- inną długość identyfikatorów (symbol length)
- inną bibliotekę Runtime Library
Kod żródłowy biblioteki znajduje się w katalogu:
\BIN\TVISION\SOURCE
Po (Uwaga!) wprowadzeniu kilku niewielkich zmian
- do plików żródłowych .CPP
- do pliku instruktażowego MAKEFILE
oraz po skompilowaniu przy pomocy BCC 4 w DWU WERSJACH: TVO.LIB (z nakładką - Overlay) i TVNO.LIB (bez nakładki - No Overlay) biblioteka TVL może być nadal z powodzeniem stosowana z Borland C++ 4. Podobnie rekompilacji wymaga bibiloteka klas dołączona w wersji żródłowej w katalogu X:\BC4\SOURCE\CLASSLIB.
O AUTOMATYZACJI - CASE.
Prócz znanego już od dość dawna (w komputerologii kilka lat to cała epoka) tradycyjnego narzędzia Resource Worshop, w wersji BC4 występują jeszcze inne narzędzia CASE kategorii "wizard" (kreator aplikacji):
- ClassExpert
- ApplicationExpert
- DialogExpert
- TargetExpert
Nazwa TargetExpert pochodzi od ang. "Target platform" - docelowa platforma pracy aplikacji (DOS, Win16, Win32). Biblioteka OWL 2.0 została wzbogacona o dodatkowe klasy VBX umożliwiające współpracę z Visual Basic i wykorzystanie elementów utworzonych przy pomocy VB. Wspomaganie tworzenie programu przy pomocy tych narzędzi (AppExpert podobnie jak inne narzędzie typu Wizard jest automatycznym generatorem aplikacji) wymaga od użytkownika wyboru z listy "zagadnienia" a z okienek docelowych cech programu. Przytoczę tu dla przykładu listę opcji z pojedynczego okienka AppExperta z krótkim wyjaśnieniem:
Topics: (okienko z listą: Zagadnienia)
Application (program docelowy)
-- Basic Opttions (wybór opcji podstawowych)
-- Advanced Options (opcje zaawansowane)
-- Code Gen Control (sposób generacji kodu)
-- Admin Options (opcje "administracyjne")
Main Window (główne okno programu)
-- Basic Options (podstawowe opcje)
-- SDI Client (interf. jednego dokumentu)
-- MDI Client (interf. wielu dokumentów)
MDI Child/View (okna potomne, widok/edycja)
-- Basic Options (opcje podstawowe)
Model: (Szkielet programu)
[X] Multiple document interface - interfejs MDI
[ ] Single document interface - interfejs SDI
Features: (cechy)
[.] SpeedBar (ma pasek narzędzi)
[.] Status line (ma wiersz statusowy)
[.] Drag/drop (obsługuje ciągnij/upuść)
[.] Printing (obsługuje drukarkę)
Po wybraniu w okienku klawisza [Generate] (wygeneruj) AppExpert generuje szkielet programu aplikacji o podanych własnościach. Wygenerowane zostaje od sześciu do dziewięciu (zależnie od ustawienia opcji i Twoich życzeń) plików projektu:
*.IDE - plik projektu (lub .PRJ)
*.APX - plik roboczy AppExpert'a (odpowiednik .PRJ)
*.RC - plik zasobów
*.RH - plik nagłówkowy zasobów
*.H - plik nagłówkowy, źródłowy
*.CPP - moduł główny źródłowy
*.HPJ - plik pomocy
*.RTF - źródłowy pomocy kontekstowej
*.ICO - ikonka projektu
Przy pomocy rozkazu Generate makefile można również automatycznie utworzyć plik instruktażowy MAKEFILE dla generatora MAKE.EXE. Uzyskany plik szkieletowy *.CPP należy tylko uzupełnić o obsługę interesujących nas zdarzeń/komunikatów. Przyspiesza to znacznie tworzenie typowych aplikacji. Programiści wszystkich krajów... BC++ 4 zawiera bibliotekę LOCALE.DLL umożliwiającą obsługę angielsko- francusko- i niemiecko- języczną. Borland zapowiada, że następne wersje będą coraz bogatsze. Doczekaliśmy się spolszczenia Windows - może i Borland C++ po polsku już tuż tuż? Póki co, najwygodniej podmienić czcionki.
ZAKOŃCZENIE.
I to już niestety koniec. Po przeanalizowaniu historii: programowania sekwencyjnego i strukturalnego oraz nowoczesnych styli programowania: obiektowego i zdarzeniowego pozostał Ci już tylko wykonanie trzech rzeczy. Powinieneś teraz:
1. Pisać własne aplikacje
2. Pisać własne aplikacje
3. Pisać własne aplikacje
Tak naprawdę - jest to jedyny sposób, by zostać dobrym programistą. Przez pewien czas okaże Ci się zapewne przydatna dyskietka dołączona do książki. Znajdziesz tam jeszcze sporo programów przykładowych, które nie zmieściły się w książce. Przyjemnej pracy z programem MEDYT.
3