Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn eine DLL in C geschriebene Funktionen enthält und auf diese Funktionen über ein C- oder C++-Sprachmodul zugegriffen werden soll, sollten Sie das __cplusplus-Präprozessormakro verwenden, um zu bestimmen, welche Sprache kompiliert wird. Anschließend sollten Sie diese Funktionen mit C-Bindung deklarieren, sofern sie von einem C++-Sprachmodul verwendet werden.Wenn Sie diese Technik anwenden und Headerdateien für die DLL bereitstellen, können diese Funktionen ohne weitere Änderungen von C- und C++-Benutzern verwendet werden.
Der folgende Code stellt eine Headerdatei dar, die sowohl von C- als auch von C++-Clientanwendungen verwendet werden kann:
// 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
Wenn Sie C-Funktionen mit einer ausführbaren C++-Datei verknüpfen müssen und die oben beschriebene Methode in den Headerdateien mit den Funktionsdeklarationen nicht verwendet wurde, können Sie wie folgt verhindern, dass die C-Funktionsnamen vom Compiler ergänzt werden:
extern "C" {
#include "MyCHeader.h"
}
Was möchten Sie tun?
Exportieren aus einer DLL mithilfe von __declspec(dllexport)
Importieren in eine Anwendung mithilfe von __declspec(dllimport)