Udostępnij za pośrednictwem


Importowanie danych za pomocą __declspec(dllimport)

W odniesieniu do danych za pomocą __declspec(dllimport) jest element wygodę, która usuwa warstwa pośrednia.Podczas importowania danych z biblioteki DLL, musisz przejść przez import tabeli adres.Przed __declspec(dllimport), oznaczało to miał wykonywanie dodatkowy poziom pośrednia podczas uzyskiwania dostępu do danych wywożonych 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

Następnie będzie 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
}

Po znaku danych jako __declspec(dllimport), kompilator automatycznie generuje kod pośrednia dla Ciebie.Nie można już martwić o powyższych kroków.Jak wspomniano wcześniej, nie należy używać __declspec(dllimport) deklarację w sprawie danych podczas tworzenia biblioteki DLL.Funkcji w bibliotece DLL należy używać tabele adresów importu dostępu do obiektu danych; w związku z tym nie ma dodatkowy poziom obecnych pośrednia.

Aby wyeksportować dane automatycznie z biblioteki DLL, należy tę deklarację:

__declspec(dllexport) ULONG ulDataInDLL;

Zobacz też

Koncepcje

Importowanie do aplikacji