- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 9 von 9

Thema: C++ Verweis aus einer C++ Datei auf Classen, Variablen in anderen C++Datei

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    05.10.2018
    Beiträge
    33
    . . . genau das ist mein Problemm.
    Die Classen (port, irsend, rcSwitch und easyvr) sollen in Datei1 definiert werden und
    in Datei2 soll darauf verwiesen werden.

    Wie in C : man definiert eine globale Variable in Datei1
    in Datei2 verweist man mit "extern" auf diese Variable
    und schon kann man diese Variable in Datei2 nutzen.

    ++++++++++++++++++++++++++++++++++++++++++++
    Noch mal hier wie es in der Dateien aussiet:

    Datei1
    IRsend irsend;
    RCSwitch rcSwitch = RCSwitch();
    SoftwareSerial port(12, 13);
    EasyVR easyvr(port);


    Datei2
    extern IRsend irsend;
    extern RCSwitch rcSwitch;
    extern "C" SoftwareSerial port();
    extern "C" EasyVR easyvr(port);

    Die 2 ersten Einträge für "irsend" und "rcSwitch" scheinen OK zu sein.
    und dann
    ERROR
    ../../Datei2.cpp:21:30: error: no matching function for call to 'EasyVR::EasyVR(SoftwareSerial (&)())'
    extern "C" EasyVR easyvr(port);

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Was macht das "C" da ? Zumindest bei SoftwareSerial müsste das auch ohne "C" funktionieren.

    mfG

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    05.10.2018
    Beiträge
    33
    . . . kann sein - hab alles mögliche ausprobiert.

    Es geht nur um diese 2 Einträge in Datei2

    1. extern SoftwareSerial port();
    2. extern "C" EasyVR easyvr(port);

    Der 2. Eintrag ist mit dem Syntax Fehler markiert:
    << Invalid arguments ' Candidates are: EasyVR(const EasyVR &) EasyVR(Stream &) >>

    Kann leider nichts damit anfangen

    Der Compiler beklagt sind auch über "SoftwareSerial port();":
    error: request for member 'begin' in 'port', which is of non-class type 'SoftwareSerial()'
    port.begin(9600);

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    versuch mal so:

    "extern SoftwareSerial port;"

    anschließend:

    "port.begin(baudrate);"

    EasyVR kenne ich nicht.


    MfG

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    05.10.2018
    Beiträge
    33
    Wie schon erwähnt programmiere ich nur notgezwungen in C++.
    Daher sind meine Aussagen unten nicht unbedingt korrekt, haben aber funktioniert.


    Datei1:

    IRsend irsend;
    - „IRsend“ ist eine Classe von der wird eine neue Classe „irsend“ erzeugt

    RCSwitch rcSwitch = RCSwitch();
    - Das gleiche wie oben, nur der neuen Clasee wirg gleich ein Wert zugewiesen
    In diesem Fall wert einer Funktion RCSwitch();
    Geanu wie int A = 5;

    SoftwareSerial port(12, 13);
    - Hier bin ich mir nicht sicher, kann sein dass die neue Classe „port“ von Classe „SeftwareSerial“ unbedingt Parameter braucht

    EasyVR easyvr(port);
    - Wie gerade beschrieben

    #define pcSerial SERIAL_PORT_MONITOR
    - Anweisung an den Preprozessor das Wort „pcSerial“ durch „SERIAL_PORT_MONITOR“ zu ersetzen (SERIAL_PORT_MONITOR ist auch eine Classe)



    Datei2;

    extern IRsend irsend;
    extern RCSwitch rcSwitch;
    extern SoftwareSerial port;
    extern EasyVR easyvr;
    - "Übergabe" der Classen an die Datei2 mit „extern"


    #define pcSerial SERIAL_PORT_MONITOR
    - Preprozessor Anweisung wird in Datei2 wiederholt
    Geändert von arwar52 (04.12.2020 um 16:20 Uhr)

Ähnliche Themen

  1. AVR DOS, Uhrzeit nach überschreiben einer Datei.
    Von tomdul im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 0
    Letzter Beitrag: 01.09.2015, 17:31
  2. Hex.Datei für Steuerung einer Mischanlage
    Von Flitzek im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 08.03.2013, 16:36
  3. Zwei Word Variablen in einer anderen verpacken Schieberegist
    Von Fabi1234 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 17
    Letzter Beitrag: 11.12.2007, 17:44
  4. Erzeugen einer .Hex-Datei aus mehreren C-Quelltexten !!
    Von casa74 im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 13.06.2005, 21:33
  5. C Datei in Bin oder Hex Datei umwandeln
    Von MSSauerxxx im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 3
    Letzter Beitrag: 08.05.2005, 16:31

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen