Aracılığıyla paylaş


dllexport, dllimport

Microsoft'a Özgü

dllexport ve dllimport depolama sınıfı öznitelikleri, C ve C++ dillerinin Microsoft'a özgü uzantılarıdır. İşlevleri, verileri ve nesneleri DLL'ye veya DLL'den dışarı ve içeri aktarmak için kullanabilirsiniz.

Sözdizimi

__declspec( dllimport ) declarator
__declspec( dllexport ) declarator

Açıklamalar

Bu öznitelikler DLL'nin istemci arabirimini açıkça tanımlar. Bu, yürütülebilir dosya veya başka bir DLL olabilir. İşlevlerin olarak dllexport bildirilmesi, en azından dışarı aktarılan işlevlerin belirtimine göre modül tanımı (.def) dosyası gereksinimini ortadan kaldırır. dllexport özniteliği anahtar sözcüğün __export yerini alır.

Bir sınıf olarak işaretlenirse __declspec(dllexport), sınıf hiyerarşisindeki sınıf şablonlarının tüm özelleştirmeleri örtük olarak olarak __declspec(dllexport)işaretlenir. Bu, sınıf şablonlarının açıkça örneklendiği ve sınıf üyelerinin tanımlanması gerektiği anlamına gelir.

dllexport işlevi, bazen "name mangling" olarak da bilinen süslü adıyla işlevi kullanıma sunar. C++ işlevleri için, süslü ad türü ve parametre bilgilerini kodlayan ek karakterler içerir. C adı düzenleme kurallarına uygun olarak extern "C" bildirilen C işlevleri veya işlevleri. C/C++ kodundaki ad düzenlemesi hakkında daha fazla bilgi için bkz . Süslü adlar.

Sıralanmamış bir adı dışarı aktarmak için, bir bölümdeki sıralanmamış adı EXPORTS tanımlayan bir Modül Tanımı (.def) dosyası kullanarak bağlantı oluşturabilirsiniz. Daha fazla bilgi için bkz. EXPORTS. Sıralanmamış bir adı dışarı aktarmanın bir diğer yolu da kaynak kodunda yönerge #pragma comment(linker, "/export:alias=decorated_name") kullanmaktır.

veya dllimportbildirdiğinizdedllexport, genişletilmiş öznitelik söz dizimini ve anahtar sözcüğünü __declspec kullanmanız gerekir.

Örnek

// Example of the dllimport and dllexport class attributes
__declspec( dllimport ) int i;
__declspec( dllexport ) void func();

Alternatif olarak, kodunuzu daha okunabilir hale getirmek için makro tanımlarını kullanabilirsiniz:

#define DllImport   __declspec( dllimport )
#define DllExport   __declspec( dllexport )

DllExport void func();
DllExport int i = 10;
DllImport int j;
DllExport int n;

Daha fazla bilgi için bkz.

END Microsoft'a Özgü

Ayrıca bkz.

__declspec
Anahtar Sözcükler