AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi wparam bei PostMessage in 64-Bit-Windows
Thema durchsuchen
Ansicht
Themen-Optionen

wparam bei PostMessage in 64-Bit-Windows

Ein Thema von DelphiKlaus · begonnen am 22. Apr 2014 · letzter Beitrag vom 23. Apr 2014
Antwort Antwort
DelphiKlaus

Registriert seit: 18. Okt 2006
100 Beiträge
 
Delphi 6 Professional
 
#1

wparam bei PostMessage in 64-Bit-Windows

  Alt 22. Apr 2014, 08:49
Hallo,

ich habe ein Problem bei einem mit Delphi 6 erstellten 32-Bit-Programm.

Ich schicke in diesem Programm aus dem Hauptfenster mit Postmessage eine Nachricht an genau dasselbe Hauptfenster, damit die Bearbeitung dieser Nachricht erst nach dem kompletten Erstellen des Fensters erfolgt. Das funktioniert nun auch schon seit Jahren einwandfrei unter 32-Bit Windows 7. Jetzt habe ich das Programm mal von einem Bekannten unter einer 64-Bit Windows 7-Version starten lassen. Da funktioniert das Postmessage nicht richtig. Der als wparam übergebene Wert kommt nicht an. Zwar ist wparam in 32-Bit-Versionen von Windows 7 ein 32-Bit-Wert, und unter 64-Bit-Versionen ein 64-Bit-Wert. Aber das dürfte doch nichts ausmachen. Ich kann halt in einem 32-Bit-Programm nur die unteren 32-Bit nutzen, und mehr will ich auch gar nicht. Ich kann ja auch in Delphi 6 nur einen 32-Bit-Wert übergeben, da wparam als longint definiert ist.

Ich konnte das Problem jetzt erstmal durch den Einsatz einer globalen Variablen umgehen; aber schön ist die Lösung nicht. Weiss jemand, wo ich genauere Informationen zu Postmessage einer 32-Bit-Anwendung in einem 64-Bit-Windows bekomme? Ich hab leider bisher keine Antwort zu meinem Problem gefunden.

Viele Grüße

Klaus
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: wparam bei PostMessage in 64-Bit-Windows

  Alt 22. Apr 2014, 09:03
Es ist und bleibt eine 32-Bit-Anwendung, auch wenn die in einem 64-Bit-Windows läuft (wobei sie ja in Wirklichkeit im WOW64 läuft)
und demnach bleibt auch WParam 32 Bit, da alles in der Anwendung immernoch 32 Bit ist und auch die 32 Bit-APIs genutzt werden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (22. Apr 2014 um 09:40 Uhr)
  Mit Zitat antworten Zitat
DelphiKlaus

Registriert seit: 18. Okt 2006
100 Beiträge
 
Delphi 6 Professional
 
#3

AW: wparam bei PostMessage in 64-Bit-Windows

  Alt 22. Apr 2014, 09:12
Danke für die schnelle Antwort.

Genauso dachte ich auch. Aber der als wparam übergebene Wert kommt definitiv nicht an. Ich übergebe keine Adresse, sondern den Wert direkt. Sollte eigentlich kein Problem sein.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.767 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: wparam bei PostMessage in 64-Bit-Windows

  Alt 22. Apr 2014, 09:31
Das einzige, das mir in Sachen wParam in der Vergangenheit Ungemach bereitete, war die Umdeklaration des wParam von INT_PTR nach UINT_PTR in XE2 (eventuell auch vorher, aber ich bin von 2007 nach XE2 "gesprungen"). Allerdings steht da, Du hättest Delphi 6...also keine Gefahr von der Richtung.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.402 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: wparam bei PostMessage in 64-Bit-Windows

  Alt 22. Apr 2014, 10:29
Ich wüsste zwar auch nicht was dabei schief laufen könnte, aber es hört sich so an als ob das sehr einfach in einem kleinen Testprogramm nachstellbar sein sollte, oder?
Das könntest du dann nämlich einfach hier anhängen. Das würde sicher am schnellsten Erkenntnisse bringen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.115 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: wparam bei PostMessage in 64-Bit-Windows

  Alt 22. Apr 2014, 11:34
Ich bin da jetzt kein Guru, aber ich hätte doch mal getippt, dass eher an der Message (ihrem Inhalt) selber statt PostMessage(..) an sich liegt: Nicht dass die Gegenseite ein 64 Bit-Prozess ist und in den Daten etwas anderes erwartet als verschickt wird?

Oder ist das dumm?
  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 11:48 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