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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin