Frage zu extern "C" bei Dll Export?
-
Hallo,
was bedeutet das eigentlich genau, wenn ich aus einer Dll Methoden exportiere und die Anweisung extern "C" ist mit dabei?
#ifdef __cplusplus
extern "C"
{
#endifEXPORT void func();
EXPORT void func2();#ifdef __cplusplus
}
#endifWarum macht so ein Umschließen mit extern "C"?
Vielen Dank!
-
Hallo,
extern "C" ist eine Bindekonvention. In diesem Fall sagst du, dass deine Funktionen func und func2 nach den C Binderegeln gebunden werden sollen. Damit werden diese Funktionen für alle Sprachen die diese Regeln befolgen können (z.B. C, C++, Fortran, Assembler) aufrufbar.Das Wichtigste hier ist, dass kein Name-Mangling stattfindet. Die Symbolnamen der Funktionen sind also eindeutig und unabhängig von einem bestimmten Compiler.
-
Danke für Deine Antwort, daß hat mir jetzt weitergeholfen!