warning C4518: '__declspec(dllexport )



  • Hallo,

    ich bekomme beim Kompilieren folgende Warnung:

    warning C4518: '__declspec(dllexport )

    Wenn ich versuche die Funktion aus der DLL Datei dynamisch zu laden, dann bleibt das Programm stehen!!

    Code Fragment:

    class DeviceControl
    {
    public:
    const char* getSerialNumber(void);
    };

    extern "C" const char* __declspec(dllexport) serialNumber(void)
    {
    DeviceControl cotrol;
    return cotrol.getSerialNumber();
    }



  • Hi,

    wenn du eine Funktion aus einer Dll Exportierst, dann ist __declspec(dllexport) richtig. Wenn du dieses Header File in dem Code verwendest in dem du importierst, dann muss es __declspec(dllimport) sein. Wenn du das gleiche Header File verwenden willst dann empfiehlt sich ein Makro so in der Art:

    #ifdef __DLLDEVICE
    //! exportiere die Klassen und Methoden
    #define DLL_IMP_EXP __declspec( dllexport ) 
    #else
    //! importiere die Klassen und Pakete aus dem Paket TableOutput
    #define DLL_IMP_EXP __declspec( dllimport ) 
    #endif
    

    und in den CPP Files der Dll noch ein #define __DLLDEVICE einfügen und fertig.

    MFG
    Kai

    EDIT:
    Bei den Funktionsnamen wo du __declspec( dllexport ) geschrieben hast gehört dann das "DLL_IMP_EXP" hin.

    [ Dieser Beitrag wurde am 12.06.2003 um 13:33 Uhr von KaiE editiert. ]



  • Ich Danke Dir 🙂


Anmelden zum Antworten