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 katalogach \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.