Nachdem ich ein Assignment beendet hatte, in dem man ein Win32-Fenster implementieren musste, wollte ich meine Funktionen in eine DLL exportieren.C Funktionen werden nicht exportiert
Überraschenderweise klagt der Linker über unreferenced Links, altough
- __declspec (dllexport)/__declspec (dllimport) definiert und verwendet, richtig (oder wie früher werde von C++).
- Die Bibliothek ist korrekt für den Linker angegeben.
- Die Funktionen sind in Abhängigkeit Walker sichtbar.
Der Linker beschwert sich immer (in Deutsch):
Fehler LNK2019: Verweis auf nicht aufgel ÷ stes externes Symbol "" __declspec (dllimport) struct cw_Window * __cdecl create (char *, ohne Vorzeichen kurz, unsigned kurz) "(__imp_? createWindow @@ YAPEAUcw_Window @@ PEADGG @ Z) in Funktion" main ". C: \ Benutzer \ jkirs \ Desktop \ Workspace \ MSVC2015_x86_64-release \ Unit.MSVC2015-x86-64.88a6cdd3 \ intermediate.Unit.exe : fatal error LNK1120: 1 nicht aufgel ÷ ste Externe
Meine Funktionen Prototypen werden wie folgt definiert:
typedef struct cw_Window cw_Window_t;
typedef struct cw_Event cw_Event_t;
API cw_Window_t* createWindow(char* pTitle, uint16_t nWidth, uint16_t nHeight);
API void destroyWindow(cw_Window_t* pWindow);
API void pollEvent(cw_Window_t* pWindow, cw_Event_t* pEvent);
wo als "API" wird wie folgt definiert:
#ifdef _MSC_VER
#ifdef CW_EXPORT
#define API __declspec(dllexport)
#else
#define API __declspec(dllimport)
#endif
#else
#define API // TODO
#endif
ich versuchte ‚extern "C" auf die 'API' Definition hinzuzufügen, als auch, wit hout ein Ergebnis, aber beschwert sich über das String-Literal "C".
Ist schon jemand auf dieses Thema gestoßen und kann mich in die richtige Richtung weisen?
Wenn es darauf ankommt: Ich bin Visual Studio C++ 2015 (MSVC_x86_64); Meine Header-Dateien enden mit '.h' und die Quelldateien enden mit '.c'.
EDIT: Die Lib soll wieder in C-Code verwendet werden.