Journal gunsmoker-a (transzferek) a jelentését a betűk L és w a wParam és lParam

Egyszer régen, a Windows 16-bit. Az egyes üzenetek magukkal két adat, az úgynevezett wParam és lParam.
Az első paraméter egy 16 bites Windows 16 bites érték ( „szó”, „szó”), így nevezték W. A második 32-bites ( „hosszú”, „hosszú”), így ez az úgynevezett L.

A paraméter W átvitelére használt számok és leírásokat, és a paraméter L - átvivő mutatók.

Amikor a Windows vált egy 32 bites, wParam paraméter nőtt fel, hogy a 32 bites érték. Ezért, bár a „W” és „word” ( „szó”), de most már nem a szó (és 64 bites Windows, mind a lehetőségek általában lesz 64 bites!).

Ez akkor hasznos, hogy megértsék a kifejezés eredete. Ha megnézzük a design ablak üzeneteket, akkor látni fogja a következő: ha az üzenet vesz egy mutató, ez a mutató általában át lParam. Ha egy üzenetet kap egy fogantyú, vagy csak egy szám, akkor átkerül a wParam. Ha az üzenet két paramétert, akkor a készülék bemegy wParam, és a mutató - a lParam.

Megértése ez a tény lehetővé teszi könnyebb megjegyezni a beállításokat ablakban üzeneteket. Ezzel szemben, ha a szabály törött linkeket, akkor az agy reagál azonnal: „Nem, valami baj van.”

Hmm, maradt kivilágítatlan idő)

Például, összefüggésben Delphi XE (x32) és a Win 7 (x64) függvény prototípusok kell még paraméterek wParam / lParam a bit 32. A prototípusok általában az ajánlott
Proc (;. WParam, lParam: LongInt).
Talán okosabb lenne, hogy írjon
Proc (;. WParam: wParam; lParam: lParam).
mint a biztosítási az átmenet a 64 bites fordító. Úgy tűnik, hogy LongInt és meg kell felelnie kicsit fordító, de.

Alexander, igazam van?

Nos, nyilván, hogy ki fogják javítani a Windows.pas x64. Mert tényleg, ez most nyilvánították LongInt, de a valóságban, ott kell lennie egy lebegő típusú dimenzió - wParam és lParam.

De ez a Delphi. És például a dzhedaevskih zagolovochnikah minden fajta már jelezte, pontosan úgy, ahogy van, egy-egy.

Kiderül, hogy most a Win x64 továbbítja még 32 bites (helyett a natív 64 bites rendszerek) segítségével néhány virtualizációs módszerek nekünk?

Beszélünk egyes alkalmazások: 32 vagy 64 bites?

64 bites alkalmazások, természetesen, a 8 bájtos érveket. Bármilyen alkalmazás újra kell fordítani annak érdekében, hogy legyen egy 64 bit. Itt, ebben a pillanatban (a pillanatban átépítés) 4 byte-os paramétereket úgy változtatjuk 8 byte.

32 bites alkalmazások, persze, egy 4 bájtos érveket. Hogyan lehet, hogy használhat egy 8 bájtos, ha azokat össze 4 byte? Abból a tényből, hogy már fut egy 32 bájtos alkalmazás 64 Batna környezetben, nem fog varázsütésre állították helyre (recompiled), mint a 64 bites, és a 8 bájtos érveket. Ezt úgy kell érteni. Ez ugyanaz marad, mint volt (beszélünk a Native, és nem a .NET).

Végtére is, a jelek 32 razryabnogo alkalmazások lesz 4 byte még a 64 bites rendszer.

A 64-bites 32 bites környezetben, minden alkalmazás fut az emulációs módot WOW64 mechanizmus (Windows-on-Windows) - körülbelül ugyanaz, mint a 95-ik évében mind a 16 bites alkalmazás fut emulációs módban WOW32 32 bites rendszer.