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;