Exportieren von Klassen in eine Dll



  • Hallo,
    ich versuche meine Klasse in eine DLL zu exportieren, aber ich bekomme immer folgenden Fehler:

    error C2375: 'Funktion' : Neudefinition; unterschiedliche Bindung
    : Siehe Deklaration von 'Funktion'

    ausserdem bekomme ich folgende Warnung 5mal:

    warning C4091: '__declspec(dllexport ) ' : Ignoriert auf der linken Seite von 'class Test', wenn keine Variable deklariert wurde

    hier mein Code:

    ///lib.h

    #define EXPORT __declspec(dllexport)

    EXPORT class Test
    {
    public:
    void Funktion(void);
    };

    ///lib.cpp
    #include <windows.h>
    #include "../Header/Lib.h"

    int WINAPI DllMain(HINSTANCE hInst, DWORD fdwReason, PVOID Reserved)
    {
    return TRUE;
    }

    EXPORT void Test::Funktion(void)
    {
    return;
    }

    Kann mir jemand einen Tipp geben, warum der Code nicht funktioniert ??

    Vielen Dank im Voraus
    Simon



  • es muss entweder heißen

    class DLLEXPORT Test
    {

    //...
    };

    oder
    class Test
    {
    DLLEXPORT int Funktion();
    };



  • standard c++ kennt keine dlls, ich verschiebe den thread mal in msvc forum



  • Auch eine einfache Methode zum exportieren von Klassen in eine DLL bei Verwendung von MFC ist eine MFC-Erweiterungs-DLL zu erstellen und dann einfach die Klasse dort einzufügen. Musst nur noch ein AFX_EXT_CLASS vor die Klasse schreiben. 😉


Anmelden zum Antworten