Kłopoty z bibliotekami DLL

Dlaczego Outlook przestaje pracować po usunięciu Exchange?

Dlaczego Outlook przestaje pracować po usunięciu Exchange?

Przez ostatni rok pisałem wielokrotnie o kłopotach związanych z przyjętą przez Microsoft filozofią "współdzielonych bibliotek DLL". Trudno powtarzać wszystkie aspekty tego zagadnienia, ale cała sprawa sprowadza się do tego, że wielu aplikacjom platformy Windows - włączając opracowane przez Microsoft - muszą towarzyszyć konkretne wersje bibliotek DLL. Jeśli biblioteka zostanie zastąpiona inną, np. podczas instalacji nowej aplikacji, która zapisuje na dysk swoją wersję pliku DLL, to w komputerze zaczynają się dziać różne, dziwne i nieoczekiwane rzeczy.

W przeszłości Microsoft przyjął atrakcyjne założenie, że przestrzeń adresową dysku można powiększyć, przyjmując filozofię "współdzielonych bibliotek". Zamiast dołączać do każdej aplikacji oddzielne biblioteki, postanowiono, że wiele aplikacji będzie współdzielić niektóre pliki DLL. Choć zasada jest dobra, w praktyce pomysł ten zaczął przysparzać użytkownikom wielu problemów i Microsoft powinien już dawno zrezygnować z tego rozwiązania. Lepiej by było, gdyby każdej aplikacji towarzyszył oddzielny zestaw plików .DLL, rezydujących w określonym katalogu (oczywiście, oprócz bibliotek DLL, które instaluje system Windows).

Ostatnio Microsoft doświadczył negatywnych skutków filozofii "współdzielonych bibliotek DLL". Można się o tym przekonać, instalując Office 97.

Eksploatując Exchange Client 4.0 i podejmując decyzję o zakupie zintegrowanego pakietu Office 97 z programem Outlook 97 (poczta elektroniczna i zarządzanie zadaniami), po instalacji powinna zostać usunięta poprzednia aplikacja Exchange. Po wywołaniu funkcji Start, Ustawienia, Panel sterowania, Dodaj/usuń programy, należy wskazać aplikację przeznaczoną do usunięcia i kliknąć na przycisku OK.

Niestety, po wykonaniu tej operacji, próba otwarcia programu Outlook kończy się niemiłą niespodziankę - system generuje i wyświetla na ekranie monitora komunikat "a required DLL file MAPI32.DLL was not found" (brak pliku MAPI32.DLL uniemożliwia uruchomienie aplikacji). Błąd ten pojawia się również wtedy, gdy usuwając aplikację Exchange, użytkownik wybierze opcję "no" przy udzielaniu odpowiedzi na pytanie: "Czy chcesz usunąć wszystkie elementy, które mogą być współdzielone przez inne aplikacje?". Nawet wtedy program usuwający z systemu aplikację kasuje wszystkie pliki .DLL, w tym MAPI32.DLL. Okazuje się, że dla pakietu Exchange nie jest to plik typu "shared" (współdzielony). Natomiast Outlook korzysta z usług tej biblioteki i nie działa pod jej nieobecność.

W Microsofcie problem ten jest znany. Firma proponuje użytkownikom rozwiązania, które są szczegółowo opisane na stronach:http://www.microsoft.com/kb/articles/q156/8/19.htm ihttp://www.microsoft/com/kb/articles/q161/2/13.htm. Doraźne rozwiązanie może polegać na powtórnym zainstalowaniu pakietu Outlook 97 lub - co jest równoważne - na wykonaniu czynności w odwrotnej kolejności - najpierw należy usunąć Exchange, później przystąpić do instalacji pakietu Outlook.

Na koniec ciekawostka związana z numerem "OEM number", który trzeba wpisać podczas instalowania niektórych aplikacji Microsoft z dysku CD-ROM.

Jeden z czytelników - instalując Windows NT - zorientował się, że nie zna numeru, ponieważ wyrzucił pudełko, na którym był on naklejony. Nie wiedząc, co zrobić, wpisał odruchowo numer widoczny na myszy. Jakież było jego zdziwienie, gdy system zaakceptował tę liczbę i instalacja przebiegła poprawnie. Tak to nieraz bywa z magicznymi liczbami, które mają chronić zasoby przed dostępem nie upoważnionych osób.

Na podstawie InfoWorld 19/97 tłum. jch

<hr size=1 noshade>Brian Livingston jest współautorem książki pt. "Windows 95 Secrets Gold" i innych pozycji o systemie Windows.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200