(20.12.2025, 18:57)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:
liefert tatsächlich "VON LAKRITZE".Code:GUI_name_inflect_with_article(
INFLECT_INDEFINITE_ARTICLE | INFLECT_SINGULAR | INFLECT_2ND_CASE,
ITEM_LAKRITZE,
INFLECT_NAME_TYPE_ITEM
);
die Datei-Endungen sind .cpp also wird vom BCC, MSVC und gcc C++ angenommen (die meisten Kompiler reagieren auf die Datei-Endung)
der gcc kompiliert C++ - er zieht nur nicht automatisch die libstdc++ library wie der g++ (g++ ist mehr oder minder gcc -x c++ -lstdc++ ...)
außerdem sind die Schick Quellen nicht pure C - wenn man C kompilierung in CMakeLists.txt mit add_compile_options(-x c) forciert - also gcc -x c, fehlen hier und dort ein paar struct Angaben usw.
die so nur mit C++ funktionieren, bin mir unsicher ob das kompilieren mit C++ nötig ist wegen der Binäräquivalenz oder ob das einfach so passiert ist
aus der TEST-Class kann man auch eine eine statische 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 int TEST_GUI_name_inflect_with_article_result = TEST_GUI_name_inflect_with_article();
