Ja gut, es läuft auf (fast) das selbe hinaus.
Bei > '' und <> '' optimiert der Compiler das schon, dass automatisch auf die String-Länge zurückgegriffen wird:
Code:
cmp dword ptr [ebp-$04],$00
(An Pointer(String) - 4 liegt der Längenzähler, 4 Bytes)
Wobei ein Vergleich auf 0, wie er bei <> '' geschieht ("jnz" in
ASM), meine ich, schneller ist, als ein Range-Vergleich über "jnbe" in dem Fall...
Also dann gibt es die definition nicht "was richtig und was falsch".
Zumindest bei der prüfung >, <> , Length.
SizeOf bleibt dann außen vor soviel habe ich verstanden und auch abgeändert.
Überlge nun ob das auch nicht richtig ist.
Delphi-Quellcode:
function GetWndText(WinHandle: HWND): string;
var
sBuf: array[0..256] of char;
lRet: Integer;
begin
Result := '';
lRet := GetWindowText(WinHandle, sBuf, sizeof(sBuf) - 1);
if lRet <= 0 then
exit;
Result := sBuf;
end;
Letztendlich ist die rückgabe auch ein string
sizeof(sBuf) - 1);
Da fehlt wohl noch was Knowhow
gruss