Importowanie danych przy użyciu atrybutu __declspec(dllimport)
W odniesieniu do danych za pomocą __declspec(dllimport) jest towarem wygodę, która usuwa warstwa pośrednia.Podczas importowania danych z biblioteki DLL, masz jeszcze przejść przez importowanie tabeli adres.Przed __declspec(dllimport), oznacza to pamiętać, aby zrobić dodatkowy poziom pośredni, gdy dostęp do danych wywożone z biblioteki DLL:
// project.h
#ifdef _DLL // If accessing the data from inside the DLL
ULONG ulDataInDll;
#else // If accessing the data from outside the DLL
ULONG *ulDataInDll;
#endif
Czy można wyeksportować dane w sieci.Plik DEF:
// project.def
LIBRARY project
EXPORTS
ulDataInDll CONSTANT
i dostęp do niego poza biblioteki DLL:
if (*ulDataInDll == 0L)
{
// Do stuff here
}
Kiedy Oznacz dane jako __declspec(dllimport), kompilator automatycznie generuje kod pośrednia dla Ciebie.Nie musisz się martwić o powyższych kroków.Jak wspomniano wcześniej, nie należy używać __declspec(dllimport) deklaracja w sprawie danych podczas tworzenia biblioteki DLL.Funkcji w bibliotece DLL należy używać importowanej tabeli Adres dostępu do obiektu danych; w związku z tym nie masz dodatkowy poziom pośrednia obecne.
Aby automatycznie wyeksportować dane z biblioteki DLL, należy użyć tej deklaracji:
__declspec(dllexport) ULONG ulDataInDLL;