Auf diese Art wird es statisch mit der DLL gelinkt, das heisst der exe loader von Windows sucht schon nach dieser Funktion und meldet dass es diese nicht gibt, noch bevor code von dir ausgefuehrt wird.
Du kannst diese Funktion aber auch zur Laufzeit dynamisch laden:
Mal nen Funktions Pointer Typen anlegen:
type
TGetSystemDefaultUILanguage = function:LANGID; stdcall;
Und dann sieht ein moeglicher Aufruf so aus:
var
LibHandle : THandle;
GetSystemDefaultUILanguage : TGetSystemDefaultUILanguage;
test : LANGID;
begin
LibHandle:=LoadLibrary('kernel32.dll');
if LibHandle>0 then begin
GetSystemDefaultUILanguage := GetProcAddress(LibHandle,'GetSystemDefaultUILanguage');
if Assigned(GetSystemDefaultUILanguage) then begin
test:=GetSystemDefaultUILanguage;
Memo1.Lines.Add(IntToStr(test));
end else begin
// Funktion nicht Supported
end;
FreeLibrary(LibHandle);
end;