[ Pobierz całość w formacie PDF ]
.* Mój program kompiluje siê poprawnie, ale w czasie jego pracy generowany jestb³¹d The procedure entry point XXX cannot be found in the dynamic link libraryXXX.DLL (Nie mo¿na znaleŸæ punktu wejœcia do procedury XXX w biblioteceXXX.DLL).Co jest nie tak?S¹ dwie mo¿liwoœci, które mog¹ doprowadziæ do tego typu b³êdu.Po pierwsze,nazwa funkcji zadeklarowana w aplikacji wywo³uj¹cej jest niepoprawna (równie¿ze wzglêdu na wielkoœæ liter).Po drugie, nazwa funkcji nie zosta³a umieszczonaw sekcji exports biblioteki DLL.* Umieœci³em formularz w bibliotece DLL, a korzystaj¹ca z niego aplikacjapowsta³a w Delphi.Rozmiar biblioteki jest ca³kiem spory.Czy istnieje jakiœsposób na jego redukcjê?Niestety nie.Jest to jeden z aspektów programowania w Delphi, który dzia³aodrobinê na niekorzyœæ programisty.Zarówno aplikacja wywo³uj¹ca, jak ibiblioteka DLL zawieraj¹ pewien fragment kodu VCL.Innymi s³owy, kod jestduplikowany w pliku.exe i.dll.Trzeba przyzwyczaiæ siê do faktu, i¿ wprzypadku przechowywania formularzy w bibliotekach DLL ca³kowity rozmiarprogramu jest wiêkszy.Przy zastosowaniu w programie pakietów wykonywalnych,zarówno aplikacja wywo³uj¹ca, jak i DLL mog¹ korzystaæ z zawartego w nichkodu.* Moja aplikacja korzysta z wielu plików typu dŸwiêkowego (wave).W tej chwilika¿dy z nich przechowywany jest w postaci oddzielnego pliku.Chcia³by umieœciæje wszystkie w jednym pliku.Czy do tego celu nadaje siê biblioteka DLL?Ca³kowicie.Jedynym minusem tego rozwi¹zania jest to, ¿e kiedy potrzebny jestpojedynczy plik wave, trzeba za³adowaæ ca³¹ bibliotekê.Mimo to biblioteka mo¿ebyæ wczytywana i usuwana w dowolnym momencie.Do odtwarzania wzorca dŸwiêkowegozapisanego jako zasób w bibliotece DLL doskonale nadaje siê funkcja PlaySound.* Mieszkam w kraju, gdzie jêzykiem narodowym jest francuski.Jakie przes³ankipowinny sk³oniæ mnie do stworzenia miêdzynarodowej wersji mojego programu?Wszystko zale¿y od tego, kim bêd¹ przyszli u¿ytkownicy Twojego programu.Je¿eliwiesz na pewno, ¿e program bêdzie rozpowszechniany tylko w krajach, gdziejêzykiem narodowym jest francuski, wtedy tworzenie ró¿nych wersji jêzykowychjest raczej niepotrzebne.Je¿eli istnieje chocia¿ cieñ mo¿liwoœci, i¿ programmóg³by byæ sprzedawany w innych krajach, wtedy nale¿y zaplanowaæ jegoumiêdzynarodowienie ju¿ na samym pocz¹tku.Lepiej jest to zrobiæ od razu, ni¿wracaæ do programu póŸniej i wprowadzaæ w nim zmiany.QuizW jaki sposób ³aduje siê statycznie biblioteki DLL?W jaki sposób ³aduje siê dynamicznie biblioteki DLL?Jak wywo³uje siê funkcjê lub procedurê z biblioteki DLL, która zosta³a wczytanaw sposób statyczny?Jakie kroki nale¿y przedsiêwzi¹æ aby mieæ pewnoœæ, ¿e procedura lub funkcja wbibliotece DLL bêdzie mog³a byæ wywo³ywana z zewn¹trz?Czy w przypadku dynamicznego za³adowania biblioteki DLL do pamiêci, mo¿nausun¹æ j¹ w dowolnej chwili, czy jest to mo¿liwe tylko przy zakoñczeniuaplikacji?Co trzeba zrobiæ, aby móc wyœwietliæ formularz Delphi zapisany w bibliotece DLLw programie nie pochodz¹cym ze œrodowiska Delphi?Jak nazywa siê s³owo kluczowe s³u¿¹ce do deklarowania funkcji i procedurimportowanych z biblioteki DLL?W jaki sposób zasoby s¹ umieszczane w bibliotece DLL?Czy biblioteka zasobów musi, oprócz zasobów, zawieraæ równie¿ kod?Czy biblioteka zawieraj¹ca zasoby mo¿e zostaæ za³adowana statycznie (w chwilistartu programu)?ÆwiczeniaStwórz bibliotekê DLL zawieraj¹c¹ procedurê, której wywo³anie spowodujewyœwietlenie okna informacyjnego (MessageBox).Stwórz aplikacjê wywo³uj¹c¹, która bêdzie korzystaæ z biblioteki DLL stworzonejw æwiczeniu pierwszym.Stwórz bibliotekê DLL zawieraj¹c¹ formularz oraz aplikacjê wywo³uj¹c¹, którabêdzie wyœwietlaæ ten formularz.Stwórz bibliotekê DLL, w której jako zasoby znajd¹ siê dwie bitmapy.Stwórz program, który na ¿¹danie bêdzie wyœwietla³ jedn¹ z bitmap zapisanych wbibliotece.(PodpowiedŸ: U¿yj komponentu TImage i metody LoadFromResourceId).Æwiczenie dodatkowe: Napisz piêæ ró¿nych bibliotek DLL, z których ka¿dazawieraæ bêdzie te same zestawy ³añcuchów, ale w innych jêzykach.Æwiczenie dodatkowe: Stwórz aplikacjê, która bêdzie wyœwietlaæ ³añcuchyutworzone w æwiczeniu szóstym.Daj u¿ytkownikowi mo¿liwoœæ wyboru jêzyka, jakima byæ stosowany przez aplikacjê
[ Pobierz całość w formacie PDF ]