TLangcb

problemy z funkcjonowaniem bibliotek, komponentów itp.

TLangcb

Nowy postprzez Michal-S2 » wtorek, 9 września 2008, 08:34

Jakiś czas temu przy tworzeniu programu użyłem komponent TLangcb, lecz z niego zrezygnowałem. Potem musiałem przeinstalować system i nie instalowałem ponownie tego komponentu. Teraz jak chcę skompilować ten program wyświetla mi się okno w którym mam podać ściezki do plików związanych z komponentem TLangcb (rozpoznałem to po nazwach plików). Czy wiecie jak zrobić żeby C++ Builder nie pytał się o te pliki?
Najgorsze nieszczęścia w historii były spowodowane przez idealistów próbujących zmuszać ludzi do tego, "co dla nich dobre"
Bjarne Stroustrup - twórca c++
Avatar użytkownika
Michal-S2
Intelektryk
Intelektryk
 
Posty: 148
Dołączył(a): sobota, 19 lipca 2008, 13:03
Lokalizacja: Gdańsk
Podziękował : 1
Otrzymał podziękowań: 1
System operacyjny: Windows 7 Professional OEM 64bit
Kompilator: Turbo C++ Explorer
    NieznanyNieznana

Re: TLangcb

Nowy postprzez Cyfrowy Baron » wtorek, 9 września 2008, 09:00

Nie pamiętam jak to jest w BCB 6, być może podobnie do BDS 2006.

  • W menu Tools wybierz Options.
  • Następnie szukaj zakładki Environment Options.
  • Szukaj sekcji C++ Options bloku Path and Directories.
  • Przy polu (typu Edit) o nazwie Search path kliknij na przycisku ...
  • Powinno wyskoczyć okno Directories w którym dodaj ścieżkę dostępu do katalogu z komponentem.

tools-options.png


W BCB 6 jest trochę inaczej, ale zasada jest ta sama.

To może jednak nie rozwiązać problemu, gdyż przy instalacji nowego komponentu, ścieżka do katalogu z tym komponentem jest dodana automatycznie, więc już tam powinna być.

Problem polega na tym, że plik projektu aplikacji zapamiętuje ścieżki dostępu do komponentów we własnym pliku i nie odwołuje się za każdym razem do opcji BCB, czyli gdy tworzysz nowy projekt to BCB pobiera ścieżki dostępu do komponentów z własnych opcji i umieszcza je w pliku projektu, ale robi to tylko raz podczas tworzenia nowego projektu.
Jeżeli więc przeinstalowałeś BCB i komponent tym razem zainstalowałeś w innym katalogu niż za pierwszym razem, to projekt, który stworzyłeś wcześniej, pamięta ścieżkę dostępu do katalogu komponentu, który był podany wcześniej, nie zna natomiast ścieżki dostępu do nowego katalogu, a ponieważ jest to stary projekt to nie odświeża sobie opcji przy uruchomieniu, musisz zrobić to ręcznie.

  • Otwórz projekt i wejdź w menu Project -> Options.
  • Wybierz zakładkę Linkier, a potem sekcję Path and defines.
  • Przy polu (typu Edit) o nazwie Library search path kliknij na przycisku ..., przycisk może też się nazywać Edit
  • W oknie które wyskoczy zobaczyusz z jakich ścieżek korzysta ten projekt, możesz je zmodyfikować, usuwając nieprawidłowe dodając nowe.

Komponenty niestandardowe najlepiej jest zawsze instalować w tej samej lokalizacji, czyli np. w katalogu BCB, tak by po przeinstalowaniu ścieżki dostępu do tych komponentów się nie zmieniały, w ten sposób stare projekty nie będą "gubiły" ścieżek.
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4727
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: TLangcb

Nowy postprzez Michal-S2 » piątek, 12 września 2008, 14:47

Path and Directories nie znalazłem. A w Project->Options->Directories/Conditionals->Library path i Include path usunąłem nieaktualne wpisy.
bez tytułu.JPG
Ale nadal wyświetla się błąd:
[Linker Fatal Error] Fatal: Unable to open file 'PACKLANGCB.LIB'
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
Najgorsze nieszczęścia w historii były spowodowane przez idealistów próbujących zmuszać ludzi do tego, "co dla nich dobre"
Bjarne Stroustrup - twórca c++
Avatar użytkownika
Michal-S2
Intelektryk
Intelektryk
 
Posty: 148
Dołączył(a): sobota, 19 lipca 2008, 13:03
Lokalizacja: Gdańsk
Podziękował : 1
Otrzymał podziękowań: 1
System operacyjny: Windows 7 Professional OEM 64bit
Kompilator: Turbo C++ Explorer
    NieznanyNieznana

Re: TLangcb

Nowy postprzez Cyfrowy Baron » piątek, 12 września 2008, 17:00

A to niestety wymaga już ingerencji w plik projektu *.BPR.


  • Zamknij program BCB.
  • Otwórz plik projektu *.bpr w Notatniku
  • Odszukaj w nim takie sekcje:

<LIBRARIES value="bcbie.lib PackFListcb.lib PckWinXP.lib rtl.lib vcl.lib"/>
<SPARELIBS value="vcl.lib rtl.lib PckWinXP.lib PackFListcb.lib bcbie.lib"/>
<PACKAGES value="vcl.bpi rtl.bpi dbrtl.bpi adortl.bpi vcldb.bpi vclx.bpi bdertl.bpi
vcldbx.bpi ibxpress.bpi dsnap.bpi cds.bpi bdecds.bpi qrpt.bpi teeui.bpi
teedb.bpi tee.bpi dss.bpi teeqr.bpi visualclx.bpi visualdbclx.bpi
dsnapcrba.bpi dsnapcon.bpi bcbsmp.bpi vclie.bpi xmlrtl.bpi inet.bpi
inetdbbde.bpi inetdbxpress.bpi inetdb.bpi nmfast.bpi webdsnap.bpi
bcbie.bpi websnap.bpi soaprtl.bpi dclocx.bpi dbexpress.bpi dbxcds.bpi
indy.bpi bcb2kaxserver.bpi OpenWirePkgCB6.bpi SignalLabBasicPkgCB6.bpi
AudioLabBasicPkgCB6.bpi AudioLabPkgCB6.bpi SignalLabScopePkgCB6.bpi"/>





W tym przykładowym pliku projektu wpisy są z cała pewnością inne niż w Twoim.
Usuń wpisy tyczące się bibliotek których już nie ma w Twoim środowisku BCB, czyli usuń wpis PACKLANGCB.LIB
Może się okazać że inne wpisy również trzeba usunąć gdyż teraz już ich nie ma.
Zapisz całość ale przed otwarciem projektu usuń z katalogu wszystkie pliki tymczasowe:

del *.~??
del *.~?
del *.obj
del *.tds

gdzie (?) znak zapytania to dowolny znak, litera, cyfra...

Uruchom ponownie projekt.


Twój błąd polega na tym, że tworząc projekt umieściłeś w nim niestandardowe komponenty. Po przeinstalowaniu środowiska, zainstalowałeś te nowe komponenty w innych lokalizacjach i z innymi nazwami paczek, a w starym projekcie są zapisane stare lokalizacje plików i stare nazwy paczek, dlatego podczas kompilacji BCB nie może ich odnaleźć.

BCB w wersji 4 posiadał opcję edycji pliku projektu, ale począwszy od wersji 6 nie mogę nigdzie znaleźć tej opcji, dlatego używam Notatnika, skrywa się tu jednak niebezpieczeństwo uszkodzenia pliku projeku, dlatego dobrze jest zrobić jego kopię.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4727
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: TLangcb

Nowy postprzez Michal-S2 » piątek, 12 września 2008, 17:44

Usunąłem dwa wpisy "TLANGCB.LIB", ale teraz kiedy chcę wczytać projekt wyświetla się komunikat "Project rule not found".
Najgorsze nieszczęścia w historii były spowodowane przez idealistów próbujących zmuszać ludzi do tego, "co dla nich dobre"
Bjarne Stroustrup - twórca c++
Avatar użytkownika
Michal-S2
Intelektryk
Intelektryk
 
Posty: 148
Dołączył(a): sobota, 19 lipca 2008, 13:03
Lokalizacja: Gdańsk
Podziękował : 1
Otrzymał podziękowań: 1
System operacyjny: Windows 7 Professional OEM 64bit
Kompilator: Turbo C++ Explorer
    NieznanyNieznana

Re: TLangcb

Nowy postprzez Cyfrowy Baron » piątek, 12 września 2008, 18:43

To oznacza uszkodzenie pliku projektu. Mam nadzieję, że zrobiłeś kopię pliku przed edycją, gdyż teraz należy przywrócić plik projektu z kopii.

Usuwać należy wpisy tylko z sekcji:

<LIBRARIES value="bcbie.lib PackFListcb.lib PckWinXP.lib rtl.lib vcl.lib"/>
<SPARELIBS value="vcl.lib rtl.lib PckWinXP.lib PackFListcb.lib bcbie.lib"/>

Reszty pliku nie należy ruszać, gdyż spowoduje to jego uszkodzenie.

Zapisując zmiany w pliku na pomocą Notatnika, nie wybieraj zapisz, gdyż Notatnik może go zapisać w formacie UTF-8, wybierz raczej 'Zapisz jako' i w polu kodowanie wybierz ANSI, zapisz plik pod tą samą nazwą nadpisując istniejący.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4727
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: TLangcb

Nowy postprzez Michal-S2 » piątek, 12 września 2008, 19:07

Zapisałem w kodowaniu ANSI, ale teraz wyświetla się błąd:
XML Project Section, PROJECT, not found
Najgorsze nieszczęścia w historii były spowodowane przez idealistów próbujących zmuszać ludzi do tego, "co dla nich dobre"
Bjarne Stroustrup - twórca c++
Avatar użytkownika
Michal-S2
Intelektryk
Intelektryk
 
Posty: 148
Dołączył(a): sobota, 19 lipca 2008, 13:03
Lokalizacja: Gdańsk
Podziękował : 1
Otrzymał podziękowań: 1
System operacyjny: Windows 7 Professional OEM 64bit
Kompilator: Turbo C++ Explorer
    NieznanyNieznana

Re: TLangcb

Nowy postprzez Cyfrowy Baron » piątek, 12 września 2008, 22:51

No i co ja mam Tobie tutaj więcej doradzić.
Ja zawsze po przeinstalowaniu systemu, czy też BCB też poprawiam wpisy w starych projektach i zawsze tak to robię, i nigdy nie miałem z tym problemów.

Coś robisz źle.

Zakładając że masz takie wpisy w tym pliku:

<LIBRARIES value="bcbie.lib PACKLANGCB.LIB rtl.lib vcl.lib"/>
<SPARELIBS value="vcl.lib rtl.lib PACKLANGCB.LIB bcbie.lib"/>

Po usunięciu błędnego wpisu te sekcje powinny wyglądać tak:

<LIBRARIES value="bcbie.lib rtl.lib vcl.lib"/>
<SPARELIBS value="vcl.lib rtl.lib bcbie.lib"/>

Zapisuję (nawet bez zmiany kodowania, po prostu Zapisz) i już powinno działać.




najpierw:
[Linker Fatal Error] Fatal: Unable to open file 'PACKLANGCB.LIB'

a potem:
Usunąłem dwa wpisy "TLANGCB.LIB", ale teraz kiedy chcę wczytać projekt wyświetla się komunikat "Project rule not found".


Widzę tutaj pewna nieprawidłowość. Błąd dotyczył brakującej biblioteki PACKLANGCB.LIB, więc dlaczego usunąleś wpis dotyczący biblioteki TLANGCB.LIB.
Zastanawiająca jest również nazwa tej biblioteki. Stworzony przeze mnie komponent TLangCB nie zawiera biblioteki TLANGCB.LIB, taka biblioteka jest tworzona podczas tworzenia paczki i nazwa tej biblioteki jest dokładnie taka sama jak nazwa paczki, a to by oznaczało, że nadałeś paczce nazwę TLANGCB
Jest to niedopuszczalne, z tego względu, że duża litera T w c++ zawsze poprzedza nazwę klasy, wiec nie należy używać tej litery na początku nazw paczek. Dodatkowo klasa tego komponentu nosi nazwę TLangCB więc ta nazwa nie może być użyta do nazwania paczki.




Mam nadzieję, że poddawałeś edycji plik *.bpr projektu aplikacji, a nie plik *.bpr paczki.

Nie zmieniaj kodowania na ANSI po prostu zapisz zmiany w pliku.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4727
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: TLangcb

Nowy postprzez Michal-S2 » sobota, 13 września 2008, 12:55

Michal-S2 napisał(a):Usunąłem dwa wpisy "TLANGCB.LIB", ale teraz kiedy chcę wczytać projekt wyświetla się komunikat "Project rule not found".

Pomyliłem się. Usunąłem dwa wpisy PackLangcb.lib.



Cyfrowy Baron napisał(a):Zapisując zmiany w pliku na pomocą Notatnika, nie wybieraj zapisz, gdyż Notatnik może go zapisać w formacie UTF-8, wybierz raczej 'Zapisz jako' i w polu kodowanie wybierz ANSI, zapisz plik pod tą samą nazwą nadpisując istniejący.

Otwierając plik projectu (Project.bpr) jest nagłówek:
<?xml version='1.0' encoding='utf-8' ?>
więc teraz nie rozumiem czemu miałbym zapisaywać w kodowaniu ANSI jeżeli C++ Builder zapisuje w UTF-8.
Ostatnio edytowano sobota, 13 września 2008, 12:59 przez Michal-S2, łącznie edytowano 1 raz
Najgorsze nieszczęścia w historii były spowodowane przez idealistów próbujących zmuszać ludzi do tego, "co dla nich dobre"
Bjarne Stroustrup - twórca c++
Avatar użytkownika
Michal-S2
Intelektryk
Intelektryk
 
Posty: 148
Dołączył(a): sobota, 19 lipca 2008, 13:03
Lokalizacja: Gdańsk
Podziękował : 1
Otrzymał podziękowań: 1
System operacyjny: Windows 7 Professional OEM 64bit
Kompilator: Turbo C++ Explorer
    NieznanyNieznana

Re: TLangcb

Nowy postprzez Cyfrowy Baron » sobota, 13 września 2008, 19:41

Mój błąd zapisz jako UTF-8.

Napisz jeżeli zadziała, powinno, u mnie zawsze działało.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4727
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana


Powrót do Biblioteki i komponenty

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość

cron