Definiowanie funkcji śródwierszowych języka C++ z dllexport i dllimport
Specyficzne dla firmy Microsoft
Funkcję wbudowaną można zdefiniować używając atrybutu dllexport.W tym przypadku funkcja jest zawsze tworzona i eksportowana, niezależnie od tego czy dowolny moduł w programie odwołuje się do tej funkcji.Przyjmuje się, że funkcja zostanie zaimportowana przez inny program.
Funkcję wbudowaną można również zdefiniować jako funkcję zadeklarowaną z atrybutem dllimport.W tym przypadku funkcja może być rozszerzona (w zależności od specyfikacji /Ob), ale nigdy nie zostanie utworzona.W szczególności jeżeli adres zaimportowanej funkcji wewnętrznej jest zajęty, zwracany jest adres funkcji znajdującej się w bibliotece DLL.To zachowanie jest takie same, jak użycie adresu zaimportowanej funkcji niewbudowanej.
Te zasady dotyczą funkcji wbudowanych, których definicje pojawiają się w ramach definicji klasy.Ponadto lokalne dane statyczne i ciągi znaków w funkcji wbudowanej obsługują te same tożsamości pomiędzy biblioteką DLL i klientem jak gdyby były pojedynczym programem (to znaczy, plikiem wykonywalnym bez interfejsu DLL).
Zachowuje ostrożność podczas dostarczania zaimportowanych funkcji wbudowanych.Na przykład podczas aktualizacji biblioteki DLL nie wolno zakładać, że klient użyje zaktualizowanej wersji biblioteki DLL.W celu upewnienia się, że zostanie załadowana prawidłowa wersja biblioteki DLL, należy skompilować ponownie klienta biblioteki DLL.