Assert nicht verfügbar?



  • Hallo.

    In meiner C++Builder2009 Hilfe gibt es ein Assert()

    Prüft, ob ein Boolescher Ausdruck wahr ist.

    Pascal
    procedure Assert(expr: Boolean); overload;
    procedure Assert(expr: Boolean; const msg: string); overload;

    C++
    Assert(Boolean expr);
    Assert(Boolean expr, const UnicodeString msg);

    Wenn ich es aber verwenden möchte, meint der Compiler das es dies nicht gäbe (E2268: Aufruf der undefinierte Funktion 'Assert').
    Das einbinden mit #include <system.hpp> bringt da leider auch nichts. Hat jemand einen Tipp für mich?



  • Assigned scheint es auch nicht zu geben.

    Prüft, ob ein Zeiger oder eine Prozedurvariable den Wert nil hat (nicht zugewiesen ist).

    Pascal
    function Assigned(const P): Boolean;

    C++
    Boolean Assigned(const P);

    Include ich die falsche Datei oder wie kann so etwas passieren?



  • Was wäre der beste Weg um diesen Delphi Code in C++Builder zu konvertieren? So das man kein Assert und Assigned benötigt?

    LRegister := MyFunc(Addr, Value, LStatus);
    Assert(Assigned(LRegister));
    Assert(LStatus = iwsAllowWrite);
    LRegister.Value := Value;
    

    Über Hilfe würde ich mich sehr freuen 🤡



  • Hallo

    Die Delphi-Funktion Assert kannst du am besten durch die Funktion assert aus dem C-Standard ersetzen. Und Assigned dürfte in C/C++ dem Vergleich mit ungleich Null entsprechen, wenn LRegister ein Integer-Typ oder ein Zeiger ist.

    #include <assert>
    ...
    assert(LRegister); // Kurzform für assert(LRegister != 0);
    assert(LStatus == iwsAllowWrite);
    

    bis bald
    akari



  • Vielen lieben Dank. 👍


Log in to reply