Bagikan melalui


Ekspor fungsi C untuk digunakan dalam executable bahasa C atau C++

Jika Anda memiliki fungsi dalam DLL yang ditulis dalam C, Anda dapat menggunakan makro praprosesor untuk membuatnya mudah diakses dari bahasa C dan kode bahasa C++. Makro __cplusplus praprosesor menunjukkan bahasa mana yang sedang dikompilasi. Anda dapat menggunakannya untuk mendeklarasikan fungsi dengan tautan C saat dipanggil dari kode bahasa C++. Jika Anda menggunakan teknik ini dan menyediakan file header untuk DLL Anda, fungsi-fungsi ini dapat digunakan oleh pengguna C dan C++ tanpa perubahan.

Kode berikut menunjukkan file header yang dapat digunakan aplikasi klien C dan C++:

// MyCFuncs.h
#ifdef __cplusplus
extern "C" {  // only need to export C interface if
              // used by C++ source code
#endif

__declspec( dllimport ) void MyCFunc();
__declspec( dllimport ) void AnotherCFunc();

#ifdef __cplusplus
}
#endif

Terkadang Anda mungkin perlu menautkan fungsi C ke C++ yang dapat dieksekusi, tetapi file header deklarasi fungsi belum menggunakan teknik di atas. Anda masih dapat memanggil fungsi dari C++. Dalam file sumber C++, bungkus #include direktif untuk mencegah pengkompilasi mendekorasi nama fungsi C:

extern "C" {
#include "MyCHeader.h"
}

Apa yang ingin Anda lakukan?

Apa yang ingin Anda ketahui lebih lanjut?

Lihat juga

Mengekspor dari DLL