libmysql.dll w zasobach

0

Witam
Potrzebuje dodac biblioteke libmysql.dll do zasobow tak zeby byla zaimplementowana w plik exe.
Jednak nigdy nielaczylem plikow dll do zasobow , czy ktos moglby podpowiedziec jak najlepiej to zrobic ?
Pozdr

0

a ja sie chetnie dowiem czy to jest zgodne z licencja - bo jak kojarze libmysql.dll to natywka do MySQL a z tym to cyrki sa

0

Connector C do MySQL od tejże firmy jest wydany na licencji GPL. Jak najbardziej jest możliwe dołączenie go do zasobów, ale z pełnymi implikacjami jakie za sobą niesie licencja GPL.

0

no wlasnie...
a jak sie nie chce udostepniac wlasnej aplikacji w GPL?

0

Najpowszechniejsza interpretacja GPL jest taka, że aby nie musieć udostępniać swojego programu na GPL, biblioteka w GPL musi być w DLL, czyli nie może być linkowana statycznie.
Poza tym, jeśli wprowadziłeś w bibliotekę jakiekolwiek zmiany, musisz udostępnić te zmiany na GPL (czyli źródła samej biblioteki, nie całego programu).

W twoim przypadku libmysql.dll jest w DLL-ce, czyli OK. Ale nie możesz jej „włączać do zasobów”. Jeśli zmieniałeś coś w tej bibliotece, udostępnij źródła samego libmysql.

0

Nieprawda, @Azarien. To w przypadku LGPL, gdy biblioteka linkowana jest dynamicznie (w sensie, że użytkownik może ją ręcznie podmienić np. na nowszą, zgodnie binarną wersję) program korzystający z niej nie jest obarczony żadnymi ograniczeniami licencyjnymi. W przypadku GPL domyślne sposoby wiązania bibliotek na tej licencji omawia FAQ na ich stronie i jest to np. sterowanie biblioteką (programem) za pomocą standardowego wejścia czy wyjścia.

Odpowiedź na pytanie autora jest bardzo krótka.

Czy jeśli bibliotekę wydano na warunkach GPL (nie LGPL), to znaczy, że każdy program, który jej używa musi być objęty GPL?
Tak, gdyż podczas działania faktycznie wykonywany program obejmuje także bibliotekę.

http://www.gnu.org/licenses/gpl-faq.html#IfLibraryIsGPL

0

Panowie
a cos odnosnie tematu ?

0
2gatunek napisał(a):

Panowie
a cos odnosnie tematu ?

Tak. Poczytaj o zasobach.

0

Masz. Od razu piszę, wystarczy sam moduł dllloader.pas i na pewno działa. Również na pewno archiwum nie zawiera malware, ale jeśli nie wierzysz to nie musisz ściągąć. Używałem tego głownie dla bibliotek: bass.dll, bassmod.dll oraz sqlite3.dll i zdało rezultat. Nie zadziała niestety - z tego - co testowałem kiedyś dla dllek, które korzystają z hookowania na funkcje WinAPI. Ale może jest na to sposób tylko ja miałem dllkę opartą na modułąch, które pozwalały pisać tylko w WinAPI. Jeżeli natomiast chcesz pisać pod WinAPI, a nie pod VCL. Musiał byś sobie raczej tak jak ja na bazie kodów źródłowych modułu Classes, stworzyć moduł zawierający tylko klasę TStream i pochodne żeby wczytywać dllkę z zasobów oraz zadeklarować w sekcji uses tylko moduł Windows. W takim przypadku dodajesz do sekcji uses modułu dllloader.pas tylko ten moduł (ja go u siebie nazwałem: mini_streams.pas) i usuwasz zbędne deklaracje i funkcje jak na przykład te korzystające TStringList. Musisz się pobawić. Żródła modułów VCL można znaleźć w odpowiednim podkatalogu instalki Delphi 7 w wersji Enterprise. Gotowców, jak pewnie Ci wiadomo już nie podsyłam. Wyjątkiem niech będzie to archiwum, bo to nie mój kod, a poza tym z tego co widzę inne linki do wygooglowania tego archiwum, ale *.zip - wygasły, a na jakiś tam chińskich stronach trzeba tłumaczyć krzaczki i dodatkowo się logować podając chyba e-mail, co może być drogą do zwiększenia ilości spamu przychodzącego na Twój e-mail. Ale może gdzieś działąjący link na stronie bez logowania by się do tej paczki znalazł.

0

Dzieki Olesio , jednak mi chodzilo o cos bardziej klasycznego.
Moze bardziej przyblize , d projekcie mam 2 komponenty sqlconnection1 i sqldata
sqlconnection1 uzywa dwoch bibliotek dbxmys.dll oraz libmysql.dll ktore musza byc w folderze z projektem.
wcisnalem 2 dwie biblioteki do mysql.RES jedak jakos sie trzeba do tego odwolac i wlasnie niewiem jak .

0

@2gatunek: rozwiązanie podane w komentarzu przez @Bartosz Wójcik jest może dla jednych klasyczne. Dla mnie moje jest "klasyczniejsze" ;) Wpakujesz dllki w zasoby, załadujesz zasób z TResourceStrema i bez problemu odwołasz się do funkcji/procedur dllki przez ich przypisanie funkcją FindExport. Ale spoko. Chcesz się męczyć jakoś jeszcze inaczej, bazując na niesprowadzonym kodzie, który sobie wywróżysz nie wiem skąd to Twoja sprawa ;/ Ja się nie upieram przy swoim, mimo iż jest to rozwiązanie - według mnie - wygodne oraz oczywiście sprawdzone wcześnej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1