AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

is my delphi App x 64 ???

Ein Thema von bernhard_LA · begonnen am 4. Sep 2011 · letzter Beitrag vom 4. Sep 2011
Antwort Antwort
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#1

is my delphi App x 64 ???

  Alt 4. Sep 2011, 09:31
ich möchte feststellen ob meine App wirlich x64 ist und hierfür den eigenen PE Header zur Programmlaufzeit auslesen, klappt aber nicht da der Zugriff auf die exe zur Programmlaufzeit nicht geht? Was nun ??

var f : TFileStream;
begin



/// check if PE header is 32 or 64 bit
/// http://stackoverflow.com/questions/2...ither-delphi-o

f:=(TFileStream.Create(Application.ExeName,fmOpenR ead));

if Isx64(f) then
begin
RadioGroupBits.ItemIndex := 1;
end
else
begin
RadioGroupBits.ItemIndex := 0;
end;


f.free
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: is my delphi App x 64 ???

  Alt 4. Sep 2011, 09:47
Guten Morgen,

Du könntest Dir eine Kopie der laufenden Exe machen und diese testen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#3

AW: is my delphi App x 64 ???

  Alt 4. Sep 2011, 10:21
ich möchte feststellen ob meine App wirlich x64 ist und hierfür den eigenen PE Header zur Programmlaufzeit auslesen
Das hört sich für mich so ein bisschen paranoid an. Da du erst ab Delphi XE2 überhaupt eine x64-Exe erzeugen kannst, gibt es dort doch wirklich einfachere und schnellere Methoden, diesen Status zu ermitteln.

Z.B. {$IFDEF CPUX64} .
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: is my delphi App x 64 ???

  Alt 4. Sep 2011, 11:30
Entweder das IFDEF oder man prüft zur Laufzeit die Größe des Datentyp "Pointer". Wenn man fremde EXEn oder DLLs untersuchen will, dann ist z.B. das Microsoft-Werkzeug "FileVer" hilfreich, welches es in den sog. Support-Tools gibt.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von MEissing
MEissing

Registriert seit: 19. Jan 2005
Ort: Egelsbach
1.384 Beiträge
 
Delphi 12 Athens
 
#5

AW: is my delphi App x 64 ???

  Alt 4. Sep 2011, 11:56
Wenn man etwas mehr haben möchte:
http://www.mitec.cz/pe.html

Als Anwendung habe ich dann auch schon häufiger den EXE Explorer benutzt:
http://www.mitec.cz/exe.html
Matthias Eißing
cu://Matthias.Eißing.de [Embarcadero]
Kein Support per PN
  Mit Zitat antworten Zitat
UliBru

Registriert seit: 10. Mai 2010
155 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: is my delphi App x 64 ???

  Alt 4. Sep 2011, 12:04
Hallo,

ich hatte unmittelbar diesselbe Frage nach dem ersten Kompilieren mit XE2.
Eine simple Lösung: Taskmanager. Der Taskmanager zeigt 32bit-Prozesse mit *32 an. Bei 64bit-Programmen nicht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: is my delphi App x 64 ???

  Alt 4. Sep 2011, 13:57
Zitat:
klappt aber nicht da der Zugriff auf die exe zur Programmlaufzeit nicht geht
Wieso sollte es nicht gehn?

Du mußt allerdings die Datei auch mit entsprechenden Sharing-Rechten öffnen ... TFileStream öffnet alle Dateien aber "exklusiv".
(daß Borcodero daran immernoch nichts geändert hat, ist voll blöd ... zumindestens fremde Leserechte hätte man inzwischen mal erlauben können)

Zitat:
Entweder das IFDEF oder man prüft zur Laufzeit die Größe des Datentyp "Pointer".
Delphi-Quellcode:
{$IF SizeOf(Pointer) = 8}
  ... // 64 Bit
{$ELSE}
  ... // vermutlich 32 Bit
{$IFEND}
(das sollte in jedem Compiler gehn, welcher diese Conditional Expression unterstützt)

Delphi-Quellcode:
IF SizeOf(Pointer) = 8 THEN BEGIN
  ... // 64 Bit
END ELSE BEGIN
  ... // vermutlich 32 Bit
END;
oder man schaut eben, ob es entsprechende Defines gibt, ala CPUX64.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 4. Sep 2011 um 14:01 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz