Aracılığıyla paylaş


C veya C++ dili yürütülebilir dosyalarında kullanmak üzere C işlevlerini dışarı aktarma

C dilinde yazılmış bir DLL'de işlevleriniz varsa, önişlemci makro kullanarak hem C dilinden hem de C++ dil kodundan erişmelerini kolaylaştırabilirsiniz. __cplusplus Önişlemci makro, hangi dilin derlendiğini gösterir. C++ dil kodundan çağrıldığında C bağlantısı ile işlevleri bildirmek için kullanabilirsiniz. Bu tekniği kullanır ve DLL'niz için üst bilgi dosyaları sağlarsanız, bu işlevler C ve C++ kullanıcıları tarafından değişiklik olmadan kullanılabilir.

Aşağıdaki kod, hem C hem de C++ istemci uygulamalarının kullanabileceği bir üst bilgi dosyasını gösterir:

// 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

Bazen C işlevlerini C++ yürütülebilir dosyanıza bağlamanız gerekebilir, ancak işlev bildirimi üst bilgi dosyaları yukarıdaki tekniği kullanmamış olabilir. C++'tan işlevleri çağırmaya devam edebilirsiniz. C++ kaynak dosyasında, derleyicinin #include C işlev adlarını süslemesini önlemek için yönergesini sarmala:

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

Ne yapmak istiyorsunuz?

Ne hakkında daha fazla bilgi edinmek istiyorsunuz?

Ayrıca bkz.

DLL'den Dışarı Aktarma