syntax error : identifier '{ctor}'



  • In den folgenden beiden Beispielen aus der Bibliothek qextserialport bekomme ich beim kompilieren die Fehlermeldung:

    error C2061: syntax error : identifier '{ctor}'

    jeweils in der letzten Zeile.

    void MessageWindow::customEvent(QEvent* event)
    {
    msgTextEdit.append(dynamic_cast<MessageEvent::MessageEvent* >(event)->msg);
    
    void MessageWindow::postMsgEvent(QtMsgType type, const char* msg)
    {
    	QString qmsg = MessageWindow::QtMsgToQString(type, msg);
    	QCoreApplication::postEvent(this, new MessageEvent::MessageEvent(qmsg));
    

    mit

    MessageEvent::MessageEvent(QString & msg):
    	QEvent(static_cast<QEvent::Type>(MessageWindow::MessageEvent))
    {
    	this->msg = msg;
    }
    

    irgenteine Idee das zu umgehen? (Der Code ist nicht von mir)

    Matthias



  • TEXT
    }



  • yxop schrieb:

    TEXT
    }

    was soll ich mit dem Unsinn anfangen?



  • pospiech schrieb:

    yxop schrieb:

    TEXT
    }

    was soll ich mit dem Unsinn anfangen?

    Wahrscheinlich meint er, dass dir die schliessenden geschweiften Klammern fehlen?



  • drakon schrieb:

    pospiech schrieb:

    yxop schrieb:

    TEXT
    }

    was soll ich mit dem Unsinn anfangen?

    Wahrscheinlich meint er, dass dir die schliessenden geschweiften Klammern fehlen?

    ich habe den relevanten Code gepostet, kein kompilierbares vollständiges Beispiel.
    Aber ich dachte das wäre klar, da sonst die Fehlermeldung ganz sicher eine andere wäre...



  • pospiech schrieb:

    ich habe den relevanten Code gepostet, kein kompilierbares vollständiges Beispiel.

    warum nicht?



  • pumuckl schrieb:

    pospiech schrieb:

    ich habe den relevanten Code gepostet, kein kompilierbares vollständiges Beispiel.

    warum nicht?

    weil es nicht mein Projekt ist, sondern einfach nur ein Beispielprogramm zu einer Bibliothek. Und das kann ich nicht mal eben auf das Problem reduzieren.

    Der vollständige Code ist hier zu finden:
    http://sourceforge.net/projects/qextserialport/files/qextserialport/1.1/qextserialport-1.1.tar.gz/download

    Wenn man an dem Code überhaupt nichts erkennen kann, dann sagt mir doch bitte was die Fehlermeldung überhaupt bedeuten soll und was für Code man zum Verständnis noch bräuchte.



  • Bitte zeig uns, an welcher Stelle der Fehler auftritt (die Zeile markieren).
    Eine minimale Klassendefinition wäre auch nicht schlecht. Und natürlich der relevante Code, der mit der Fehlermeldung zu tun hat.

    Und insbesondere: mehr von der Meldung! Da steht 100% dabei, in welcher Methode das Problem auftritt, welche Typen involviert sind, usw. Diese eine Zeile bringt einen nicht weiter.
    Und jetzt qextserialport runterladen, installieren und irgendwelche Beispiele testen ist mir zu aufwändig.

    Mit dem geposteten kann man nur durch seehr genaue Kenntnisse der involvierten Bibliotheken und eigene Erfahrungen mit diesem Fehler genaue Aussagen machen.



  • MessageEvent::MessageEvent bezeichnet den Konstruktor der MessageEvent-Klasse, und du benutzt ihn jeweils wie eine Klasse. Die Klasse heißt vermutlich MessageWindow::MessageEvent, obwohl ich das aus der Zeile

    QEvent(static_cast<QEvent::Type>(MessageWindow::MessageEvent))
    

    im letzten Codestück herleite, die selbst falsch abgetippt zu sein scheint (wenn meine Vermutung stimmt, wird die Klasse da wie ein Objekt benutzt), ich das also nicht mit Sicherheit sagen kann.

    Wie dem auch sei, er scheint den Klassennamen ja auflösen zu können, also solltest du einfach nur MessageEvent::MessageEvent jeweils durch MessageEvent ersetzen müssen.


Anmelden zum Antworten