So ganz klar ist die Sache für mich aber immer noch nicht, da ich nicht so oft die
API verwende bzw. ich mich noch nicht so intensiv beschäftigt habe. Wenn ich eine Funktion zum ermitteln der Windowsversion schreibe, würde die Deklaration des Typen so aussehen, wenn ich die windows.pas nutzte:
Delphi-Quellcode:
function GetWinVer : string;
var
OSVersionInfo : TOSVersionInfo;
begin
ZeroMemory(@OSVersionInfo, SizeOf(TOSVersionInfo));
OSVersionInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
if GetVersionEx(OSVersionInfo) then
begin
end;
end;
Das würde doch der
Ansi-Variante entsprechen ebenso der Aufruf der Funktion GetVersionEx.
Wenn ich das ganze kompiliere, verarbeite ich doch nur die
Ansi-Variante. Demnach müsste das entstande Programm Probleme mit sich bringen, da der Typ _OSVERSIONINFOA verarbeitet und die
API Funktion GetVersionExA gebraucht wird aber bei einem Rechner mit nur noch Wide-Version nicht vorhanden ist? Wenn ich die Funktion und den Typ selber in die
Unit aufnehme, kann ich die Wide-Version verwenden aber eben nicht wenn ich die Windows.pas einbinde.