DLL einbinden



  • Also ich weiß das dieses schon sehr oft gefragt wurde aber ich versteh da was nicht.
    Ich habe eine DLL mit codeblocks geschrieben. Die statische lib wird automatisch mitgeneriert. Die statische lib hab ich dem linker hinzu gefügt. Nun weiß ich das ich auch noch eine Header brauch. Was muß da drin stehen?



  • Also ich hab festgestell es müsste eigentlich klappen aber er findet eine funktion
    nicht obwohl er diese aber anzeigt als mögliche funktion wenn man die klammer
    hinter einer funktion öffnet.
    also so

    test(
    test(char test) // Das zeigt er an
    test(char test, int key) // und das

    tippe ich dann das ein:

    char t;

    test(t);

    Kommt ein fehler das es so eine funtion nicht gibt. 😞



  • Also ich hab festgestell es müsste eigentlich klappen aber er findet eine funktion
    nicht obwohl er diese aber anzeigt als mögliche funktion wenn man die klammer
    hinter einer funktion öffnet.

    was?

    du inkludierst die header datei der dll in deinem projekt in dem du funktionen aus der dll nutzen willst, vorausgesetzt du hast deine header datei mit den entsprechenden ifdefs ausgestattet und definierst GDFGDF_EXPORTS wenn du die dll kompilierst

    // The following ifdef block is the standard way of creating macros which make exporting 
    // from a DLL simpler. All files within this DLL are compiled with the GDFGDF_EXPORTS
    // symbol defined on the command line. this symbol should not be defined on any project
    // that uses this DLL. This way any other project whose source files include this file see 
    // GDFGDF_API functions as being imported from a DLL, wheras this DLL sees symbols
    // defined with this macro as being exported.
    #ifdef GDFGDF_EXPORTS
    #define GDFGDF_API __declspec(dllexport)
    #else
    #define GDFGDF_API __declspec(dllimport)
    #endif
    
    // This class is exported from the gdfgdf.dll
    class GDFGDF_API CGdfgdf {
    public:
    	CGdfgdf(void);
    	// TODO: add your methods here.
    };
    
    extern GDFGDF_API int nGdfgdf;
    
    GDFGDF_API int fnGdfgdf(void);
    


  • Danke für die Antwort ich habs jetzt auch hingekriegt.


Anmelden zum Antworten