extern "C" funktion in C++ Klasse



  • Hallo,
    ich habe eine klasse einer MFC DLL aus der ich eine Funktion exportieren muss.
    Diese muss aber gemäß den vorgaben wie folgt deklariert sein:

    extern "C" __declspec(dllexport) int SomeFunction(int);
    

    Das extern "C" bereitet mir hierbei massiv probleme:

    ich bekomme hierbei für diese zeile den Compilerfehler:

    dllproj.h(9) : error C2059: syntax error : 'string'

    Ich nehme an das es an dem "C" liegen muss aber ich komm nicht darauf wie ich es dem Compiler beibringen soll 😞

    Hat jemand einen Tipp für mich?

    Danke!



  • Zeig mal bitte en bisschen Code (Definition und Aufruf).



  • class Foo
    {
    ...
    public:
    extern "C" __declspec(dllexport) int SomeFunction(int);
    ...
    };
    

    Es handelt sich hierbei um eine Reguläre DLL statisch gelinkt.

    Implementation:

    extern "C" __declspec(dllexport) int SomeFunction(int x)
    {
         //do something
    }
    

    Dank dir mal wenn du noch was brauchst dann geb mir grad bescheid 🙂



  • Hallo

    Klassen und C-Interface widersprechen sich schon per Definition.
    Emntweder hast du ein reines C-Interface, oder du hast ein C++ Interface mit Klassen, das aber dann Compiler-spezifisch ist.

    bis bald
    akari


Anmelden zum Antworten