Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İki yöntem kullanarak genel simgeleri bir uygulamaya aktarabilir veya DLL'den işlevleri dışarı aktarabilirsiniz:
DLL'yi oluştururken modül tanımı (.def) dosyası kullanma
Ana uygulamadaki bir işlev tanımında veya
__declspec(dllimport)
anahtar sözcüklerini__declspec(dllexport)
kullanma
.def dosyası kullanma
Modül tanımı (.def) dosyası, DLL'nin çeşitli özniteliklerini açıklayan bir veya daha fazla modül deyimi içeren bir metin dosyasıdır. DLL'nin işlevlerini dışarı aktarmak için veya __declspec(dllimport)
kullanmazsanız__declspec(dllexport)
, DLL bir .def dosyası gerektirir.
.def dosyalarını kullanarak bir uygulamaya aktarabilir veya DLL'den dışarı aktarabilirsiniz.
__declspec kullanma
Kodunuzun doğru derlenebilmesi için kullanmanız __declspec(dllimport)
gerekmez, ancak bunu yapmak derleyicinin daha iyi kod oluşturmasına olanak tanır. Derleyici, bir işlevin DLL'de var olup olmadığını belirleyebildiğinden, derleyicinin normalde DLL sınırını aşan bir işlev çağrısında mevcut olabilecek bir dolaylılık düzeyini atlayan kod üretmesine olanak tanıdığından daha iyi kod oluşturabilir. Ancak, DLL'de kullanılan değişkenleri içeri aktarmak için kullanmanız __declspec(dllimport)
gerekir.
Uygun .def dosyası EXPORTS bölümünde __declspec(dllexport)
gerekli değildir.
__declspec(dllexport)
, .def dosyası kullanmadan bir .exe veya .dll dosyasından işlevleri dışarı aktarmanın kolay bir yolunu sağlamak için eklendi.
Win32 Taşınabilir Yürütülebilir Dosya biçimi, içeri aktarmaları düzeltmek için dokunulması gereken sayfa sayısını en aza indirmek için tasarlanmıştır. Bunu yapmak için, herhangi bir programın tüm içeri aktarma adreslerini İçeri Aktarma Adresi Tablosu olarak adlandırılan tek bir yere yerleştirir. Bu, yükleyicinin bu içeri aktarma işlemlerine erişirken yalnızca bir veya iki sayfayı değiştirmesine olanak tanır.