Du bekommst eine Zahl weil du die Funktion falsch aufrufst. Richtig ist es so:
Delphi-Quellcode:
var Classenname: Array[0..255] of Char;
begin
GetClassName(Application.Handle, Classenname, 255);
end;
GetClassName besorgt sich selbst die Adresse der Variablen, also brauchst du nicht den pointer übergeben, ist klar das es sonst schief geht.