Uruchamianie skompilowanego programu na innych maszynach bez instalacji BCB
Standardowo, projekt w BCB ma wlaczona opcje dolaczania dynamicznych bibliotek zawierajacych kod zrodlowy niektorych funkcji, co zwiazane jest z koniecznoscia przenoszenia nie tylko kodu programu (plik .exe) ale takze bibliotek dynamicznych (.dll) i dystrybucje zestawu plikow na komputery nie posiadajace zainstalowanego pakietu BCB. Jako ze wymagane standardowo bilioteki (vcl60.dll na przyklad) sa dosc znaczne (ponad 1.5 MB), kolportowanie ich wraz zkodem programu o pojemnosci 150 kB czasem mija sie z celem. Dlatego tez mozna zastosowac laczenie statyczne (kod zrodlowy wykorzystywanych funkcji zostaje wkompilowany w kod programu), ktore wymaga wprowadzenia nastepujacych ustawien w opcjach projektu.
Project->Options->Pakages Odznaczyc: Build with runtime packages
Project->Options->Linker Odznaczyc: Use dynamic RTL
Uwaga 1: wylaczenie tych opcji powoduje zwiekszenie pojemnosci wynikowego kodu programu, z czym nalezy sie niestety liczyc. Z doswiadczenia wynika iz w przypadku wiekszych programow (powyzej 500 tys linii kodu, bardziej oplacalne jest juz laczenie dynamiczne i kolportarz plikow .dll wraz z .exe).
Uwaga 2: wylaczenie opcji dynamicznego RTL powoduje brak obslugi funkcji typu virtual, co w przypadku programow zorientowanych obiektowo moze miec powazne nastepstwa w postaci niepoprawnej obslugi dziedziczenia pomiedzy klasami i wspoldzielenia przestrzeni nazw. W wiekszosci przypadkow (99%) funkcje te mozna spokojnie wylaczyc.
Project->Options->Pakages Odznaczyc: Build with runtime packages
Project->Options->Linker Odznaczyc: Use dynamic RTL
Uwaga 1: wylaczenie tych opcji powoduje zwiekszenie pojemnosci wynikowego kodu programu, z czym nalezy sie niestety liczyc. Z doswiadczenia wynika iz w przypadku wiekszych programow (powyzej 500 tys linii kodu, bardziej oplacalne jest juz laczenie dynamiczne i kolportarz plikow .dll wraz z .exe).
Uwaga 2: wylaczenie opcji dynamicznego RTL powoduje brak obslugi funkcji typu virtual, co w przypadku programow zorientowanych obiektowo moze miec powazne nastepstwa w postaci niepoprawnej obslugi dziedziczenia pomiedzy klasami i wspoldzielenia przestrzeni nazw. W wiekszosci przypadkow (99%) funkcje te mozna spokojnie wylaczyc.
Autorem tekstu jest:
Marek Hajduczenia
Materiał dodany przez użytkownika: marek_haj
