AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Probleme mit 64Bit Erkennung des OS
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit 64Bit Erkennung des OS

Ein Thema von RWarnecke · begonnen am 27. Feb 2012 · letzter Beitrag vom 28. Feb 2012
Antwort Antwort
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

AW: Probleme mit 64Bit Erkennung des OS

  Alt 27. Feb 2012, 19:14
Hallo Bernhard,

danke für Deine Antwort. Nicht das ich wüsste, da ich die erstellte EXE einfach von meiner Platte auf einen USB-Stick kopiert habe und dann vom USB-Stick auf dem PC2 ausgeführt habe.

Edit: Ich habe jetzt nochmal, mein Programm auf PC1 ausprobiert. Jetzt gibt er mir den gleichen Wert wie auf PC2 aus. Alles irgendwie misteriös. Ich könnte schwören, dass er gestern Abend noch am PC1 True als Rückgabewert hatte.

Edit2: Wer lesen kann ist klar im Vorteil. Hier die Erklärung :
Zitat:
Wow64Process [out]

A pointer to a value that is set to TRUE if the process is running under WOW64. If the process is running under 32-bit Windows, the value is set to FALSE. If the process is a 64-bit application running under 64-bit Windows, the value is also set to FALSE.
Rolf Warnecke
App4Mission

Geändert von RWarnecke (27. Feb 2012 um 19:26 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Probleme mit 64Bit Erkennung des OS

  Alt 27. Feb 2012, 20:04
Kompatibilitätsmodus sollte eigentlich kein Problem sein, denn in einem 64 Bit Prozess sollte IsWow64Process immer True False liefern, da es so oder so ein 64 Bit-Prozess bleiben wird und demnach auch immer nur in einem 64 Bit-OS laufen kann.

Bei einem 32 Bit-Programm könnte es anders sein, entweder es weiß daß es in einem 64 Bit-OS läuft oder ihm wird über den Kompatibilitätsmodus vorgegaugelt, daß es es eigentlich in einem 32 Bit-OS liefe.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (27. Feb 2012 um 20:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Probleme mit 64Bit Erkennung des OS

  Alt 27. Feb 2012, 20:10
... enn in einem 64 Bit Prozess sollte IsWow64Process immer True liefern, da es so oder so ein 64 Bit-Prozess bleiben wird und demnach auch immer nur in einem 64 Bit-OS laufen kann.
Und wie soll eine 64-Bit Prozess im Windows32OnWindows64 laufen (Abgekürzt WoW64)?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Probleme mit 64Bit Erkennung des OS

  Alt 27. Feb 2012, 20:22
Kompatibilitätsmodus?

IsWow64Process gibt an, daß der Prozess in einem 64 Bit-OS läuft.

Ups nee, es war genau andersrum.
Es ist dann immer False.

OK, also IsWow64Process gibt quasi an, daß der Prozess in einem OS läuft, welches nicht seiner Bitbreite entspricht.

Theoretisch, wäre IsWow64Process in der 64 Bit-API sinnlos, genauso wie in der API eines 32 Bit-OS, aber da gibt es das ja dennoch, damit Code kompatibel bleibt.



Aber wie gesagt, bei einem 64 Bit-Programm sollte es keinen Unterschied machen und immer True ähhh False liefern.
Bleiben dann wohl nur 2 Möglichkeiten:
- Bug im OS und in dessen Implementierung. (müßte man im Debugger > CPU-Ansicht < mitbekommen, denn in der Funktion sollte einfach nur das Regiater RAX auf 0 gesetzt werden)
- Fehler in der Implementation (aber die sieht eigentlich OK aus)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (27. Feb 2012 um 20:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#5

AW: Probleme mit 64Bit Erkennung des OS

  Alt 27. Feb 2012, 20:40
Anscheinend ist es von der WinAPI so vorgegeben. Siehe MSDN-Library durchsuchenIsWow64Process Von dieser Seite stammt auch mein Zitat von Beitrag #3.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Probleme mit 64Bit Erkennung des OS

  Alt 27. Feb 2012, 20:55
Bei einem Bug der WinAPI könnte man es eventuell über MSDN-Library durchsuchenGetNativeSystemInfo versuchen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Probleme mit 64Bit Erkennung des OS

  Alt 27. Feb 2012, 21:03
32 Bit Exe, 32-Bit OS: WOW64 -> False
64 Bit Exe, 32-Bit OS: -
32 Bit Exe, 64-Bit OS: WOW64 -> True
64 Bit Exe, 64-Bit OS: WOW64 -> False

Aber man weiß ja, ob man eine 64-Bit oder 32-Bit Anwendung compiliert hat.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 07:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz