mir ist aufgefallen, daß ich Funktionen aus DLLs innerhalb von Funktionen in TYPEs nur dann nutzen kann, wenn ich die entsprechenden DECLARE-Anweisungen auch innerhalb von TYPE .. ENDTYPE setze. Ansonsten bekomme ich Fehlermeldungen wegen fehlenden Deklarationen.
Beispiel:
TYPE TLanguage
INLINE
DECLARE(GetUserDefaultLangID, "kernel32.dll", (void), int);
ENDINLINE
FUNCTION GetDefaultUserLang:
INLINE
return GetUserDefaultLangID();
ENDINLINE
ENDFUNCTION
ENDTYPE
LOCAL lang AS TLanguage
IF lang.GetDefaultUserLang() = 1031
STDOUT "Sprache ist Deutsch."
ELSE
STDOUT "Sprache ist ausländisch."
ENDIF
KEYWAIT
In der generierten cpp - Datei stehen die DECLARE-Anweisung dann wieder außerhalb, aber in der gleichen Datei wie die implementierten Klassen-Methoden.
Nur mal so nebenbei ...
PLATFORMINFO$("LANG") - das willst Du.
Hast Recht - ist ein Fehler, aber mir schauderts... XD
die Funktion war nur ein Beispiel. Ging mir ja nur um das Prinzip. Und als Fehler sehe ich das nicht so wirklich, eher unter der Rubrik "Gut zu wissen", falls man es mal anwenden möchte.
Beides als möglichkeit ist aber auch schick ;)