Unresolved external trotz benutzen von extern "C"



  • Hallo!
    Folgender Code und problem:
    Ich will folgende Funktionen aus einer .c Datei in einem c++ Projekt benutzen, sie sind über eine Headerdatei verknüpft die schon mit extern "C"{
    #include "HTMLExport.h"
    }
    aufgerufen wird. Wenn ich das ganze jetzt aber kompileieren will krieg ich nen Linker Fehler das er meine Funktion htmlexport, nicht kennt und zwar sieht das dann so aus:

    [Linker Fehler] Unresolved external '_htmlexport' referenced from C:\DOKUMENTE UND EINSTELLUNGEN\REGUS\DESKTOP\WHERE IS MY DVD\UNIT1.OBJ

    Was mich ahlt verwundert ist das er die Funktion zwar nicht marged, oder wie auch immer man das schreibt, er aber nur einen '_' davorsetzt. Hab ich einfach was vergessen oder woran könnte es liegen?

    Hier der Inhalt der Headerdatei:

    #define EXPORTFILE "DVD-Archiv.html"

    #ifdef __cplusplus
    extern "C" {
    #endif
    int htmlexport(void);
    /*** Hier wird die Kopfzeile der HTML Datei erstellt ***/
    void headline(FILE *);

    /*** Hier wird das Arbeitsarray eingetragen ***/
    void writeArray(FILE *);

    /*** Hier wird die HTML Datei abgeschlossen ***/
    void footer(FILE *);
    #ifdef __cplusplus
    }
    #endif int htmlexport();



  • na linkst du denn auch eine lib dazu, die die htmlexport enthält? Oder warum machst du es überhaupt extern "C"?



  • äh nein, wie muss die dann aussehen?



  • also...

    Wo ist deine htmlexport definiert?

    Also das muss so aussehen:

    extern "C" {
    int htmlexport(void) 
    {
      // hier der Code von HTML-Export
    return 0;
    }
    }
    

    Dieser Code muss in einer Cpp-Datei stehen, da ich davon ausgehe, dass du die htmlexport selbst geschrieben hast.
    Diese Datei musst du nun entweder direkt zu deinem Projekt linken oder du machst eine Lib draus und linkst dann die lib dazu.
    Wie das jeweils geht musst du deinem compiler-manual oder sonstwas entnehmen.


Anmelden zum Antworten