Themabewertung:
  • 4 Bewertung(en) - 3.5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Reverse Engineering der NLT II
(Vor 9 Stunden)llm schrieb:
Zitat:Es ist der Binäräquivalenztest, der mich vor Fehlern bewahrt.

ja das ist unschlagbar - es bleibt garantiert so falsch wie es vorher war :)

So kann man es auch formulieren...

(Vor 8 Stunden)llm schrieb: @siebenstreich

wenn du die Routine frei stehend aufrufen willst ist das ein kleiner statischer Test - der vor der main aufgerufen wird, kann man dann schön rein debuggen

einfach hinter die GUI_name_inflect_with_article-Funktion kopieren

Danke für den Tip!

Aha, die Idee ist wohl die Funktion über den Konstruktor eines static struct auszuführen. Das ist doch eigentlich ein C++-Konstrukt. Interessant, dass das in diesem C-Projekt auch funktioniert.

Ich habe es ausprobiert und es funktioniert!

Test-Case:
Code:
GUI_name_inflect_with_article(
        INFLECT_INDEFINITE_ARTICLE | INFLECT_SINGULAR | INFLECT_2ND_CASE,
        ITEM_LAKRITZE,
        INFLECT_NAME_TYPE_ITEM
);
liefert tatsächlich "VON LAKRITZE".
Zitieren
(Vor 3 Stunden)siebenstreich schrieb: Danke für den Tip!

Aha, die Idee ist wohl die Funktion über den Konstruktor eines static struct auszuführen. Das ist doch eigentlich ein C++-Konstrukt. Interessant, dass das in diesem C-Projekt auch funktioniert.

Ich habe es ausprobiert und es funktioniert!

Test-Case:
Code:
GUI_name_inflect_with_article(
        INFLECT_INDEFINITE_ARTICLE | INFLECT_SINGULAR | INFLECT_2ND_CASE,
        ITEM_LAKRITZE,
        INFLECT_NAME_TYPE_ITEM
);
liefert tatsächlich "VON LAKRITZE".

die Datei-Endungen sind .cpp d.h. es wird erstmal C++ vom BCC oder MSVC angenommen - der g++ wird verwenden weil in der CMakeLists.txt auch

Zitat:set(CMAKE_CXX_STANDARD 11)

steht

aber das ist ja auch nur zum testen - kann man auch mit einer statischen Funktion machen

Code:
int TEST_GUI_name_inflect_with_article()
{
   init_memory();
   init_text();
   char* x = (char*)GUI_name_inflect_with_article(
      INFLECT_INDEFINITE_ARTICLE | INFLECT_SINGULAR | INFLECT_1ST_CASE,
      ITEM_SAEBEL,
      INFLECT_NAME_TYPE_ITEM
    );
    return 1234; // dummy
}
static TEST_GUI_name_inflect_with_article_result = TEST_GUI_name_inflect_with_article();
Zitieren




Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste