Share via


dllexport, dllimport

Khusus Microsoft

Atribut dllexport kelas penyimpanan dan dllimport adalah ekstensi khusus Microsoft ke bahasa C dan C++. Anda dapat menggunakannya untuk mengekspor dan mengimpor fungsi, data, dan objek ke atau dari DLL.

Sintaks

__declspec( dllimport ) declarator
__declspec( dllexport ) declarator

Keterangan

Atribut ini secara eksplisit menentukan antarmuka DLL ke kliennya, yang dapat menjadi file yang dapat dieksekusi atau DLL lain. Mendeklarasikan fungsi sebagai dllexport menghilangkan kebutuhan akan file definisi modul (.def), setidaknya sehubungan dengan spesifikasi fungsi yang diekspor. Atribut dllexport menggantikan __export kata kunci.

Jika kelas ditandai __declspec(dllexport), setiap spesialisasi templat kelas dalam hierarki kelas secara implisit ditandai sebagai __declspec(dllexport). Ini berarti bahwa templat kelas secara eksplisit dibuat dan anggota kelas harus didefinisikan.

dllexport dari fungsi mengekspos fungsi dengan nama yang didekorasi, kadang-kadang dikenal sebagai "nama mangling". Untuk fungsi C++, nama yang didekorasi mencakup karakter tambahan yang mengodekan jenis dan informasi parameter. Fungsi atau fungsi C yang dinyatakan sebagai extern "C" berikut aturan dekorasi nama C. Untuk informasi selengkapnya tentang dekorasi nama dalam kode C/C++, lihat Nama yang didekorasi.

Untuk mengekspor nama yang tidak terdekorasi, Anda dapat menautkan dengan menggunakan file Definisi Modul (.def) yang menentukan nama yang tidak terdekorasi di bagian EXPORTS . Untuk informasi selengkapnya, lihat EXPORTS . Cara lain untuk mengekspor nama yang tidak terdekorasi adalah dengan menggunakan #pragma comment(linker, "/export:alias=decorated_name") arahan dalam kode sumber.

Saat Anda mendeklarasikan dllexport atau dllimport, Anda harus menggunakan sintaks atribut yang diperluas dan __declspec kata kunci.

Contoh

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

Atau, untuk membuat kode Anda lebih mudah dibaca, Anda dapat menggunakan definisi makro:

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

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

Untuk informasi selengkapnya, lihat:

END Khusus Microsoft

Lihat juga

__declspec
Kata kunci