Von C++ auf C zugreifen



  • Hi zusammen,

    ich bin neu und habe auch eine anfänger frage. wie kann ich von einem C++ Projekt auf ein C Projekt bzw. auf das C file zu greifen? Ich habe die beiden Projekte nun in der gleichen solution...muss ich irgendwelche Settings setzen in den Projekt einstellungen?

    vielen dank und gruss
    green



  • Hallo

    du kannst grundsätzlich C und C++ gemischt mit einem C++ Compiler kompilieren. C++ ist fast 100% abwärtskompatibel.

    bis bald
    akari



  • Sofern der C-Code schon als Object-File vorliegt, musst du dir auf jeden Fall die extern "C" -Direktive anschauen.



  • danke für die antworten.

    ich habe es mal folgendermassen probiert:

    extern "C" {
       #include "test.h"
    }
    

    dann krieg dich den hier:
    d:\testapp\testapp-3.0.0a\jniCall\TestImp\TestImp.cpp(19): fatal error C1083: Cannot open include file: 'test.h': No such file or directory

    warum denn das? 😕

    green



  • Hallo

    wie die Fehlermeldung scho nsagt, kann der Compiler die Datei test.h nicht finden. Warum können wir dir mangels Hellsicht nicht sagen.

    bis bald
    akari



  • was muss man denn da beachten? das file ist definitiv in der gleichen solution vorhanden. muss ich da was am projekt einstellen oder muss da noch ein pfad hin?

    green



  • Du musst halt den Pfad in der test.h ist zu den Include Verzeichnissen hinzufügen. Musst halt in deiner IDE nach den Einstellungen suchen. Oder du erzählst uns welche IDE du verwendest, dann kann man dir evtl. nen genaueren Hinweis geben.

    Ich hellsehe einfach mal das du Visual C++ Express Edition verwendest


  • Mod

    es kommt nicht darauf an, ob test.h teil der soultion ist, sondern ausschließlich darauf, wo sich test.h relativ zu TestImp.cpp befindet. es muss in diesem falle entweder im selben verzeichnis befinden oder in einem verzeichnis, das in den compiler- oder projekteinstellungen als includeverzeichnis durchsucht wird.



  • jep das wars! jetzt ist sie im include verzeichnis und nun funktionierts.
    wie gesagt ich bin noch anfänger. 🙄


Anmelden zum Antworten