Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#17

AW: läuft Programm unter 32-Bit oder 64-Bit ab ?

  Alt 10. Jun 2017, 17:38
Dieser Code ist aber ein schlechtes Beispiel.

Da verschwendet man Minuten, nur um dann mitzubekommen, dass maximal der letzte Kommentar halbwegs wichtige Informationen enthält.
Alles davor ist absolut sinnlos und stellt nur doppelte Informationen für den eigentlich "selbsterklärenden Code dar.
Wichtige Informationen gehen durch Sinnlose Kommentare schnell mal verloren, bzw. man sieht sie garnicht erst, weil man keine Lust mehr hat sich ständig sinnloses Zeug durchzulesen.

Im Gegenzug fehlt dafür die Beschreibung der Fuktion selbst und IsWow64A ist auch falsch, da es hier "dynimisch" implementiert wurde und nicht als ANSI.

Delphi-Quellcode:
/// <summary> Determines whether the specified process is running under WOW64.<br /> WOW64 is the x86
/// emulator that allows 32-bit Windows-based applications to run seamlessly on 64-bit Windows </summary>
function IsWow64: Boolean;
type
  TIsWow64Process = function(Handle: THandle; var Res: BOOL): BOOL; stdcall;
var
  IsWow64Process: TIsWow64Process;
  IsWow64Result: BOOL;
begin
  IsWow64Process := GetProcAddress(GetModuleHandle('kernel32'), 'IsWow64Process');
  if Assigned(IsWow64Process) then begin
    if not IsWow64Process(GetCurrentProcess, IsWow64Result) then
      RaiseLastOSError; //RaiseLastWin32Error; //raise Exception.Create(SysErrorMessage(GetLastError));
    Result := IsWow64Result;
  end else
    Result := False; // Function not implemented: can't be running on Wow64
end;
Oder als kurzer Inlinetype.
Delphi-Quellcode:
var
  IsWow64Process: function(Handle: THandle; var Res: BOOL): BOOL; stdcall;
  IsWow64Result: BOOL;
So würde explizit ANSI (A) oder Unicode (W) verwendet.
Das Andere passt sich jeweils an die vom Delphi "standardmäßig" verwendete API-Version an. (Unicode seit D2009)
Delphi-Quellcode:
IsWow64Process := GetProcAddressA(GetModuleHandleA('kernel32'), 'IsWow64Process');

IsWow64Process := GetProcAddressW(GetModuleHandleW('kernel32'), 'IsWow64Process');
/// <summary> ist die etwas menschenlesbare Version des DocInsight, was die Erweiterung zum HelpInsight darstellt.
Normal z.B. so:
Delphi-Quellcode:
// Determines whether the specified process is running under WOW64.
// WOW64 is the x86 emulator that allows 32-bit Windows-based applications to run seamlessly on 64-bit Windows
HelpInsight : Das zeigt als Hint im Delphi die Funktionsdeklaration an.
DocInsight : Das zeigt stattdessen explizite HilfeInfos an (DelphiDoc ala Bei Google suchenPHPDoc)
Bei Google suchenDocumentation Insight : erweiteres HelpInsight samt integriertem Editor und Hilfegenerator (Dokumentierter Code -> Programm-Hilfe ala .hlp, .chm usw.) ... leider hatte Delphi das nur 2 Jahre lang direkt integriert und hat nur wieder nur die "manuellen" Code-Vorlagen dabei
$2B or not $2B
  Mit Zitat antworten Zitat