Udostępnij za pośrednictwem


Korzystanie z biblioteki importowanej oraz pliku eksportowanego

Gdy program (plik wykonywalny lub biblioteka DLL) eksportuje do innego programu, z którego importuje również program, lub jeśli więcej niż dwa programy eksportują do siebie i importowane ze sobą, polecenia łączące te programy muszą pomieścić eksporty cykliczne.

W sytuacji bez eksportów cyklicznych podczas łączenia programu korzystającego z eksportów z innego programu należy określić bibliotekę importu dla programu eksportu. Biblioteka importu dla programu eksportu jest tworzona podczas łączenia tego programu eksportującego. W związku z tym przed zaimportowaniem programu należy połączyć program eksportu. Jeśli na przykład TWO.dll importować z ONE.dll, musisz najpierw połączyć ONE.dll i pobrać bibliotekę importu ONE.lib. Następnie należy określić bibliotekę ONE.lib podczas łączenia TWO.dll. Gdy konsolidator tworzy TWO.dll, tworzy również bibliotekę importu TWO.lib. Użyj biblioteki TWO.lib podczas łączenia programów importowanych z TWO.dll.

Jednak w sytuacji eksportu cyklicznego nie można połączyć wszystkich programów wzajemnie zależnych przy użyciu bibliotek importu z innych programów. W omówionych wcześniej przykładach, jeśli TWO.dll również eksportuje do ONE.dll, biblioteka importu dla TWO.dll nie będzie jeszcze istnieć, gdy ONE.dll jest połączona. Gdy istnieją eksporty cykliczne, należy użyć biblioteki LIB, aby utworzyć bibliotekę importu i plik eksportu dla jednego z programów.

Aby rozpocząć, wybierz jeden z programów, na których ma zostać uruchomiona biblioteka LIB. W poleceniu LIB wyświetl listę wszystkich obiektów i bibliotek dla programu i określ /DEF. Jeśli program używa pliku def lub /EXPORT specyfikacji, określ je również.

Po utworzeniu biblioteki importu (.lib) i pliku eksportu (.exp) dla programu należy użyć biblioteki importu podczas łączenia innego programu lub programów. Link tworzy bibliotekę importu dla każdego tworzonego przez niego programu eksportu. Jeśli na przykład uruchomisz bibliotekę LIB na obiektach i eksportach dla ONE.dll, utworzysz bibliotekę ONE.lib i one.exp. Teraz możesz użyć biblioteki ONE.lib podczas łączenia TWO.dll; W tym kroku zostanie również utworzona biblioteka importu TWO.lib.

Na koniec połącz program, z którym rozpoczęto. W poleceniu LINK określ obiekty i biblioteki dla programu, plik exp utworzony przez bibliotekę LIB dla programu oraz biblioteki importu dla eksportów używanych przez program. Aby kontynuować ten przykład, polecenie LINK dla ONE.dll zawiera elementy ONE.exp i TWO.lib, a także obiekty i biblioteki, które przechodzą do ONE.dll. Nie należy określać pliku .def lub /EXPORT specyfikacji w poleceniu LINK; nie są one potrzebne, ponieważ definicje eksportu znajdują się w pliku exp. Po połączeniu przy użyciu pliku exp link nie tworzy biblioteki importu, ponieważ zakłada, że został utworzony podczas tworzenia pliku exp.

Zobacz też

Praca z bibliotekami importowanymi oraz plikami eksportowanymi