czosnek17 Temat założony przez niniejszego użytkownika |
Dodawanie dll do exe » 2012-12-23 20:00:16 Chcę dodać dll do exe. Trafiłem na takie coś http://furrydev.wordpress.com/2012/01/20 /laczenie-dll-i-exe-w-jeden-plik/, ale otrzymałem jakiś dziwny windowsowy plik, który po uruchomieniu pomnażał się w procesach i musiałem się wylogować, żeby to zatrzymać. Jedynym sposobem jest tu chyba kompilacja statyczna. Dlaczego nikt w internecie nie raczy tego wytłumaczyć? Może ktoś to zrobić? Używam Code Blocks. Da się tym linkowaniem dołączyć też pliki png i txt? |
|
DejaVu |
» 2012-12-23 20:13:22 Cóż... w zasadzie to niezbyt precyzyjnie określiłeś swój problem patrząc z punktu technologicznego. Jeżeli dobrze zrozumiałem, Twoim celem jest utworzenie aplikacji *.exe, która nie będzie potrzebowała dodatkowych plików *.dll, aby możliwe było jej uruchomienie. Jeżeli o to Ci chodzi to: 1) skompiluj w trybie statycznym ze źródeł bibliotekę, która obecnie ma postać *.dll. 2) W wyniku kompilacji statycznej pojawi się plik *.a (bądź *.lib). 3) Skompilowany plik *.a (bądź *.lib) dołączasz w opcjach linkera (w praktyce tak samo jak trzeba było to zrobić w przypadku *.dll) 4) Kompilujesz i sprawa jest załatwiona.
PS. Wsadzanie plików binarnych do aplikacji to jedno, a kompilacja statyczna to co innego. Rozwiąż najpierw jeden problem, a potem załóż osobny temat do drugiego problemu (które tak na dobrą sprawę wielokrotnie były rozwiązywane na naszym forum, a więc wystarczy ich poszukać).
@down: źle swoje zdanie logicznie poskładałeś :P (tak w zasadzie to napisałeś na odwrót niż to co chce osiągnąć) |
|
Mrovqa |
» 2012-12-23 20:14:48 Jeżeli chcesz dll mieć zlinkowane statycznie, a nie dynamicznie - czyli bez dll - to linkuj dynamicznie statycznie. Natomiast jeśli chcesz dowolne pliki umieścić we wnętrzu pliku wykonywalnego, by móc je np. wczytać to poczytaj o zasobach (na tej stronie kurs WinAPI).
@up Fakt. Po tylu godzinach męczenia się z Apache, PHP i MySQL człowiek w ogóle już nie myśli :/ |
|
czosnek17 Temat założony przez niniejszego użytkownika |
» 2012-12-23 20:35:31 Jeżeli dobrze zrozumiałem, Twoim celem jest utworzenie aplikacji *.exe, która nie będzie potrzebowała dodatkowych plików *.dll, aby możliwe było jej uruchomienie. |
Tak, o to chodzi. 1) skompiluj w trybie statycznym ze źródeł bibliotekę, która obecnie ma postać *.dll.
|
Ehh... jak to się robi? Potrzebne są do tego tylko dll? |
|
DejaVu |
» 2012-12-23 21:25:48 Ściągasz źródła danej biblioteki i kompilujesz je przy pomocy kompilatora, którego używasz do projektów (to tak w skrócie). /edit: Dodam jeszcze, że samodzielna kompilacja bibliotek jest często drogą przez mękę nawet dla doświadczonego programisty. |
|
czosnek17 Temat założony przez niniejszego użytkownika |
» 2012-12-23 22:00:05 Dodam jeszcze, że samodzielna kompilacja bibliotek jest często drogą przez mękę nawet dla doświadczonego programisty. |
O nie... Dzięki za ostrzeżenie :), podaruję sobie to. W lekcji, o której mówił Mrovqa jest link do ciekawego programu. Ale dlaczego nie ma już skompilowanych statycznie popularnych bibliotek do pobrania? |
|
DejaVu |
» 2012-12-23 22:29:39 Do niektórych bibliotek są, do niektórych bibliotek nie ma, bo licencja zabrania. Poza tym większość programistów jest leniwa, bądź nie potrafi sobie skompilować statycznie bibliotek, co w praktyce przekłada się na formę promowania bibliotek, których użyłeś w swoim projekcie. |
|
« 1 » |