Gewrappte DLL-Funktionen in TYPEs

Previous topic - Next topic

Quentin

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:
Code (glbasic) Select

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 ...

Kitty Hello

PLATFORMINFO$("LANG") - das willst Du.

Hast Recht - ist ein Fehler, aber mir schauderts... XD

Quentin

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.

Schranz0r

Beides als möglichkeit ist aber auch schick ;)
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard