Definiowanie funkcji śródwierszowych języka C++ z dllexport i dllimport

Specyficzne dla firmy Microsoft

Można zdefiniować jako wbudowany element funkcji za pomocą atrybutu dllexport . W takim przypadku funkcja jest zawsze tworzone i eksportowane, niezależnie od tego, czy żaden moduł w programie odwołuje się do funkcji. Zakłada się, że funkcja zostanie zaimportowana przez inny program.

Można również zdefiniować jako śródliniową funkcję zadeklarowaną za pomocą atrybutu dllimport . W takim przypadku funkcję można rozszerzyć (z zastrzeżeniem /Ob specifications), ale nigdy nie tworzy się wystąpienia. W szczególności, jeśli adres zaimportowanej funkcji wbudowanej jest pobierany, zwracany jest adres funkcji znajdującej się w bibliotece DLL. To zachowanie jest takie samo, jak pobieranie adresu niezaimportowanej funkcji.

Te reguły dotyczą wbudowanych funkcji, których definicje są wyświetlane w definicji klasy. Ponadto statyczne dane lokalne i ciągi w funkcjach wbudowanych zachowują te same tożsamości między biblioteką DLL i klientem, co w jednym programie (czyli pliku wykonywalnego bez interfejsu DLL).

Zachowaj ostrożność podczas dostarczania zaimportowanych funkcji wbudowanych. Jeśli na przykład zaktualizujesz bibliotekę DLL, nie zakładaj, że klient użyje zmienionej wersji biblioteki DLL. Aby upewnić się, że ładujesz odpowiednią wersję biblioteki DLL, ponownie skompiluj klienta biblioteki DLL.

END Microsoft Specific

Zobacz też

dllexport, dllimport