Autor Wątek: CommonLib  (Przeczytany 12545 razy)

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Czerwiec 29, 2007, 20:54:04
Uniwersalna biblioteka do C++, pisana głównie z myślą o programowaniu gier. Zawiera m.in.: moduł matematyczny (wektory, macierze, kwaterniony, płaszczyzny, bogaty zbiór funkcji do kolizji i inne), operacje na łańcuchach, konwersje, inteligentne wskaźniki, obsługa plików konfiguracyjnych, moduł do daty i czasu, hierarchia klas wyjątków do obsługi błędów, obsługa systemu plików, hierarchia klas strumieni, szybki alokator FreeList, rozbudowany logger, profiler, biblioteka do wielowątkowości i synchronizacji, tokenizer, obsługa kompresji zlib.

Język: C++
Platforma: Windows i prawdopodobnie także Linux
Licencja: GNU LGPL
Opcjonalnie wspiera Unicode.
Opcjonalnie współpracuje z D3DX.
Dokumentacja zrobiona w Doxygen.

Więcej informacji: http://asawicki.info/productions/biblioteki/CommonLib.php5   
Kod plus dokumentacja w HTML i CHM: http://asawicki.info/Download/Productions/Libraries/CommonLib_9_0.zip (4,92 MB)
Przeglądaj dokumentację HTML online: http://asawicki.info/productions/biblioteki/CommonLib_9_0/doc/html/
Przeglądaj kod online: http://asawicki.info/download.php5?x=Productions%2FLibraries%2FCommonLib_9_0
« Ostatnia zmiana: Grudzień 16, 2009, 22:16:03 wysłana przez Reg »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Moriturius

  • Użytkownik

# Czerwiec 29, 2007, 22:34:50
Noo to trzeba przyznac ze masz sie czym pochwalic :)
Byc moze wykorzystam to cudo i u siebie...

Moze mi ktos w skrocie powiedziec tylko o zasadach licencji GNU LGPL?

oczywiscie dokarmie Cie =]

Offline meehav

  • Użytkownik
    • meehav.net

# Czerwiec 29, 2007, 23:19:06
Moze mi ktos w skrocie powiedziec tylko o zasadach licencji GNU LGPL?
W skrocie to takie GNU GPL, tylko Twoj projekt nie musi byc Open Source...

Offline shyha

  • Użytkownik
    • Shyha@Flickr

# Czerwiec 29, 2007, 23:27:37
Moze mi ktos w skrocie powiedziec tylko o zasadach licencji GNU LGPL?
W skrocie to takie GNU GPL, tylko Twoj projekt nie musi byc Open Source...
To teraz w skrócie co to jest GNU GPL :)

Offline Moriturius

  • Użytkownik

# Czerwiec 29, 2007, 23:28:11
Moze mi ktos w skrocie powiedziec tylko o zasadach licencji GNU LGPL?
W skrocie to takie GNU GPL, tylko Twoj projekt nie musi byc Open Source...
O. To sa duze szanse ze uzyje CommonLiba ;)

//EDIT:

cos niespecjalnie chce mi sie skompilowac. Wrzucam output:

1>------ Build started: Project: commonlib, Configuration: Debug Win32 ------
1>Compiling...
1>Stream.cpp
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(43) : warning C4117: macro name '__FUNCSIG__' is reserved, '#define' ignored
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1117) : error C3861: 'finitef': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1118) : error C3861: 'finite': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1119) : error C3861: 'isnanf': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1120) : error C3861: 'isnan': identifier not found
1>ZlibUtils.cpp
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(43) : warning C4117: macro name '__FUNCSIG__' is reserved, '#define' ignored
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1117) : error C3861: 'finitef': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1118) : error C3861: 'finite': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1119) : error C3861: 'isnanf': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1120) : error C3861: 'isnan': identifier not found
1>..\..\src\ZlibUtils.cpp(12) : fatal error C1083: Cannot open include file: 'zlib.h': No such file or directory
1>Profiler.cpp
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(43) : warning C4117: macro name '__FUNCSIG__' is reserved, '#define' ignored
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1117) : error C3861: 'finitef': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1118) : error C3861: 'finite': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1119) : error C3861: 'isnanf': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1120) : error C3861: 'isnan': identifier not found
1>Logger.cpp
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(43) : warning C4117: macro name '__FUNCSIG__' is reserved, '#define' ignored
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1117) : error C3861: 'finitef': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1118) : error C3861: 'finite': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1119) : error C3861: 'isnanf': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1120) : error C3861: 'isnan': identifier not found
1>Error.cpp
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(43) : warning C4117: macro name '__FUNCSIG__' is reserved, '#define' ignored
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1117) : error C3861: 'finitef': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1118) : error C3861: 'finite': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1119) : error C3861: 'isnanf': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1120) : error C3861: 'isnan': identifier not found
1>Config.cpp
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(43) : warning C4117: macro name '__FUNCSIG__' is reserved, '#define' ignored
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1117) : error C3861: 'finitef': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1118) : error C3861: 'finite': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1119) : error C3861: 'isnanf': identifier not found
1>g:\libs\tfq_commonlib_6_1\src\Base.hpp(1120) : error C3861: 'isnan': identifier not found
1>Generating Code...
1>Build log was saved at "file://g:\Libs\TFQ_CommonLib_6_1\commonlib\commonlib\Debug\BuildLog.htm"
1>commonlib - 25 error(s), 6 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

« Ostatnia zmiana: Czerwiec 30, 2007, 10:10:43 wysłana przez Moriturius »

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Czerwiec 30, 2007, 10:45:31
Moriturius: Co to za kompilator? Podejrzewam że jakiś starszy Visual C++. Błędy wskazują że jakimś dziwnym trafem nie masz zdefiniowanego makra WIN32, które powinno być zdefiniowane domyślnie zawsze w Windows i na którym polegam w swoim kodzie. Dodaj do opcji kompilatora żeby wszędzie było zdefiniowane i powinno być OK.

Offline Moriturius

  • Użytkownik

# Czerwiec 30, 2007, 11:04:28
Moriturius: Co to za kompilator? Podejrzewam że jakiś starszy Visual C++.
Visual C++ 2005 Express Edition

Błędy wskazują że jakimś dziwnym trafem nie masz zdefiniowanego makra WIN32, które powinno być zdefiniowane domyślnie zawsze w Windows i na którym polegam w swoim kodzie. Dodaj do opcji kompilatora żeby wszędzie było zdefiniowane i powinno być OK.
Zaraz sprawdze :)

//EDIT: ok, szukam szukam i nie moge znalezc. kocham ta przejrzystosc opcji w VC++... ktos wie moze gdzie to dodac?
« Ostatnia zmiana: Czerwiec 30, 2007, 11:09:24 wysłana przez Moriturius »

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Czerwiec 30, 2007, 11:15:20
- Wchodzisz do opcji projektu (wiesz jak to zrobić?)
- Po lewej wybierasz Configuration Properties > C/C++ > Preprocessor
- Do opcji Preprocessor Definitions dopisujesz WIN32

Nie zapomnij zrobić tego samego i dla Debug i dla Release.

Offline Moriturius

  • Użytkownik

# Czerwiec 30, 2007, 12:35:01
Ok, faktycznie jest juz lepiej w pewnym sensie :P
Teraz wywala inne bledy, ale to dlatego ze nie mam zlib.h.

Poki co nie mam czasu zeby sie z tym bawic wiec sproboje pozniej.

Offline Charibo

  • Redaktor

# Czerwiec 30, 2007, 18:31:59
To jest wlasnie do bani w bibliotekach rozprowadzanych jako zrodla. Znacznie wygodniej uzywa sie dllek :)

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Czerwiec 30, 2007, 18:49:26
Moduł ZlibUtils jest dla tych którzy chcą używać zlib-a. Jeśli ktoś nie chce, po prostu nie dołącza modułu ZlibUtils i wtedy mój CommonLib nie wymaga biblioteki zlib. To jest właśnie piękne w bibliotekach rozprowadzanych jako źródła :)

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Marzec 29, 2008, 20:02:57
Moja biblioteka CommonLib doczekała się zupełnie nowej wersji: 8.0. Najważniejsze nowości, to:

* Pojawiła się dokumentacja wygenerowana w Doxygen.
* W systemie Windows biblioteka może być teraz przełączona w tryb wsparcia dla Unicode.
* Moduł Math nadal jest niezależny od systemu, ale kiedy wybrane jest użycie DirectX, typy matematyczne zamiast własnych struktur stają się aliasami do tych z D3DX.
* Wszystkie (prawie) łańcuchy w kodzie, w tym głównie komunikaty błędów, są teraz w języku angielskim.

Więcej: http://regedit.warsztat.gd/produkcje/biblioteki/CommonLib.php5

Offline Solmis

  • Użytkownik
    • Solmis

# Marzec 30, 2008, 11:25:24
No, no...
Kawał dobrej roboty! ;)
Może nawet wykorzystam to cudo. :F

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Listopad 10, 2008, 19:59:41
Publikuję nową wersję mojej biblioteki - 8.1. Najważniejsza nowość to dodatkowe, wypasione funkcje do kolizji różnych brył 3D na podstawie książki "Real-Time Collision Detection", m.in. z prostopadłościanem OBB.

Lista nowości: http://regedit.warsztat.gd/produkcje/biblioteki/CommonLib_8_1/doc/html/#main_whatsnew_8_1

Więcej informacji: http://regedit.warsztat.gd/produkcje/biblioteki/CommonLib.php5   
Kod plus dokumentacja w HTML i CHM: http://regedit.warsztat.gd/Download/Produkcje/Biblioteki/CommonLib_8_1.zip (4.01 MB)
Przeglądaj dokumentację HTML online: http://regedit.warsztat.gd/produkcje/biblioteki/CommonLib_8_1/doc/html/
Przeglądaj kod online: http://regedit.warsztat.gd/download.php5?x=Produkcje%2FBiblioteki%2FCommonLib_8_1

Offline Anton Chigurh

  • Użytkownik

# Listopad 10, 2008, 22:42:44
O! Nie widziałem wcześniej tego wątku. Biblioteczka wygląda bardzo użytecznie i do tego jest na wolnej licencji. Dziękuję, prawdopodobnie skorzystam :)