Aracılığıyla paylaş


__declspec(dllimport) Kullanarak Veriyi İçeri Aktarmak

Söz konusu veriyken, __declspec(dllimport) kullanımı dolaylı yollar bulunduran katmanları kaldıran kullanışlı bir araçtır. Veriyi DLL'den içeri aktarırken de, aktarım adres tablosunu kontrol etmelisiniz. __declspec(dllimport)'ten önce, bu DLL'den dışa aktarılan veriye erişirken fazladan bir düzey dolaylı yol yapmayı hatırlamalısınız anlamına gelir:

// 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

Sonra veriyi .DEF dosyanıza aktarabilirsiniz:

// project.def
LIBRARY project
EXPORTS
   ulDataInDll   CONSTANT

ve DLL'in dışından veriye erişebilirsiniz:

if (*ulDataInDll == 0L) 
{
   // Do stuff here
}

Veriyi __declspec(dllimport) olarak işaretlediğinizde, derleyici sizin için dolaylı yol kodunu otomatik olarak oluşturur. Yukarıdaki adımlar için endişelenmenize daha fazla gerek kalmaz. Daha öncede belirtildiği gibi, DLL oluştururken veride __declspec(dllimport) bildirimini kullanmayın. DLL içindeki fonksiyonlar veri nesnelerine erişmek için aktarım adres tablosunu kullanmazlar, bu yüzden fazladan bir düzey dolaylı yol hazır olarak bulunmaz.

DLL'den otomatik olarak veriyi dışarıya aktarmak için aşağıdaki bildirimi kullanın:

__declspec(dllexport) ULONG ulDataInDLL;

Ayrıca bkz.

Kavramlar

Uygulamanın İçine Aktarma