Kullanarak verileri içeri aktarma __declspec(dllimport)
Veri söz konusu olduğunda, kullanmak __declspec(dllimport)
bir dolaylılık katmanını kaldıran bir kolaylık öğesidir. DLL'den verileri içeri aktardığınızda, yine de içeri aktarma adresi tablosundan geçmeniz gerekir. öncesinde __declspec(dllimport)
bu, DLL'den dışarı aktarılan verilere erişirken fazladan bir dolaylı işlem yapmayı unutmamanız gerektiği anlamına geliyordu:
// project.h
// Define PROJECT_EXPORTS when building your DLL
#ifdef PROJECT_EXPORTS // If accessing the data from inside the DLL
ULONG ulDataInDll;
#else // If accessing the data from outside the DLL
ULONG *ulDataInDll;
#endif
Ardından içindeki verileri dışarı aktarırsınız. DEF dosyası:
// project.def
LIBRARY project
EXPORTS
ulDataInDll CONSTANT
ve DLL dışından erişin:
if (*ulDataInDll == 0L)
{
// Do stuff here
}
Verileri olarak __declspec(dllimport)
işaretlediğinizde, derleyici sizin için otomatik olarak dolaylı kod oluşturur. Artık yukarıdaki adımlar hakkında endişelenmeniz gerekmez. Daha önce belirtildiği gibi, DLL'yi oluştururken verilerde bildirim kullanmayın __declspec(dllimport)
. DLL içindeki işlevler, veri nesnesine erişmek için içeri aktarma adresi tablosunu kullanmaz; bu nedenle, ek dolaylılık düzeyine sahip olmayacaksınız.
DLL'den verileri otomatik olarak dışarı aktarmak için şu bildirimi kullanın:
// project.h
// Define PROJECT_EXPORTS when building your DLL
#ifdef PROJECT_EXPORTS // If accessing the data from inside the DLL
__declspec(dllexport) ULONG ulDataInDLL;
#else // If accessing the data from outside the DLL
__declspec(dllimport) ULONG ulDataInDLL;
#endif
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin