Udostępnij za pośrednictwem


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;

Zobacz też

Koncepcje

Importowanie do aplikacji