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 Sie Über Funktionen in einer in C geschriebenen DLL verfügen, können Sie ein Präprozessormakro verwenden, um den Zugriff über C-Sprache und C++-Sprachcode zu erleichtern. Das __cplusplus Präprozessormakro gibt an, welche Sprache kompiliert wird. Sie können sie verwenden, um die Funktionen mit C-Verknüpfung zu deklarieren, wenn sie aus C++-Sprachcode aufgerufen wird. Wenn Sie diese Technik verwenden und Headerdateien für Ihre DLL bereitstellen, können diese Funktionen von C- und C++-Benutzern ohne Änderung verwendet werden.
Der folgende Code zeigt eine Headerdatei, die sowohl C- als auch C++-Clientanwendungen verwenden können:
// 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
Manchmal müssen Sie C-Funktionen möglicherweise mit Ihrer ausführbaren Datei C++ verknüpfen, aber die Headerdateien der Funktionsdeklaration haben die oben beschriebene Technik nicht verwendet. Sie können die Funktionen weiterhin aus C++ aufrufen. Schließen Sie in der C++-Quelldatei die #include Direktive um, um zu verhindern, dass der Compiler die C-Funktionsnamen ausrichten kann:
extern "C" {
#include "MyCHeader.h"
}
Wie möchten Sie vorgehen?
Exportieren aus einer DLL mithilfe einer DLL
__declspec(dllexport)Importieren in eine Anwendung mithilfe von
__declspec(dllimport)