|
|
|
Lazarus: передачи строки посредством SendMessage
|
|||
|---|---|---|---|
|
#18+
Дока можешь в двух словах об их отличии при использовании пользовательских сообщений? Ты тоже ссылку постом выше почитай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 20:43:19 |
|
||
|
Lazarus: передачи строки посредством SendMessage
|
|||
|---|---|---|---|
|
#18+
schiТы тоже ссылку постом выше почитай почитал уже. Т.о. это имеет только историческое значение. Я тут читаю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 20:54:49 |
|
||
|
Lazarus: передачи строки посредством SendMessage
|
|||
|---|---|---|---|
|
#18+
ДокschiТы тоже ссылку постом выше почитай почитал уже. Т.о. это имеет только историческое значение. Я тут читаю :) Что-то после фразы "В 16-разрядной Windows передача сообщения в окно всегда осуществляется синхронно отправитель не может продолжить работу, пока окно не обработает полученное сообщение " доверие к переводу несколько падает, потому что очередь сообщений и функция PostMessage были еще в 16-разрядной Windows... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 22:05:37 |
|
||
|
Lazarus: передачи строки посредством SendMessage
|
|||
|---|---|---|---|
|
#18+
Докт.е. так кошерно? Код: pascal 1. Кошерно. Но зачем? Чем не строило Код: pascal 1. Докв приемнике выдает соответственно -333 и -555Вопрос к транслятору типов. МСДН четко пишет LPARAM A message parameter. This type is declared in WinDef.h as follows: typedef LONG_PTR LPARAM; WPARAM A message parameter. This type is declared in WinDef.h as follows: typedef UINT_PTR WPARAM; Дока можешь в двух словах об их отличии при использовании пользовательских сообщений?Никаких. У тебя есть два числа. Как хочешь, так и используй alekcvpКстати, а на 64хбитной системе WParam и LParam - 64-битные или всё также 32х?Я же написал - типы размером с машинное слово. 32 битной системе - 32 бита. На 64 - 64 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 22:48:39 |
|
||
|
Lazarus: передачи строки посредством SendMessage
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Вопрос к транслятору типов. МСДН четко пишет LPARAM A message parameter. This type is declared in WinDef.h as follows: typedef LONG_PTR LPARAM; WPARAM A message parameter. This type is declared in WinDef.h as follows: typedef UINT_PTR WPARAM т.е., все равно никаких, кроме итсторического происхождения их названия? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 23:02:28 |
|
||
|
Lazarus: передачи строки посредством SendMessage
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Чем не строило Код: pascal 1. решил выяснить все до конца. Привычка :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 23:11:17 |
|
||
|
Lazarus: передачи строки посредством SendMessage
|
|||
|---|---|---|---|
|
#18+
ДокschiТы тоже ссылку постом выше почитай почитал уже. Т.о. это имеет только историческое значение. При отправке сообщений из 32х битного приложения в 64х битное, то WPARAM просто дополняется 0ми, т.е. если отправлялся Код: pascal 1. то в 64х битном приложении мы получим NativeInt(WPARAM) = 4294967295 и NativeInt(LPARAM) = -1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2017, 10:33:23 |
|
||
|
Lazarus: передачи строки посредством SendMessage
|
|||
|---|---|---|---|
|
#18+
alekcvpто в 64х битном приложении мы получим NativeInt(WPARAM) = 4294967295 и NativeInt(LPARAM) = -1. хорошо, а если так Код: pascal 1. 2. 3. где NativeUInt Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. а справка говорит Код: pascal 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2017, 12:47:41 |
|
||
|
Lazarus: передачи строки посредством SendMessage
|
|||
|---|---|---|---|
|
#18+
Похоже, тема всех утомила. Попробую резюмировать: 1. если данные передаются в пределах приложений одной разрядности , то WParam = LParam = тип DWord(x32) и Int64(x64) 2. если данные передаются в пределах приложений разной разрядности , то WParam - тип DWord(x32) или QWord(x64) LParam - аналогично п.1 Все правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2017, 15:08:15 |
|
||
|
Lazarus: передачи строки посредством SendMessage
|
|||
|---|---|---|---|
|
#18+
Док2. если данные передаются в пределах приложений разной разрядности , то Даже не пробовал так никогда, если честно. По идее вообще сработать вряд ли должно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2017, 16:35:10 |
|
||
|
Lazarus: передачи строки посредством SendMessage
|
|||
|---|---|---|---|
|
#18+
ДокПохоже, тема всех утомила. Попробую резюмировать: 1. если данные передаются в пределах приложений одной разрядности , то ... то неважно как их интерпретировать, как Int или как UInt соотв. разрядности, т.к. они передаются "Как есть". Док2. если данные передаются в пределах приложений разной разрядности , то То преобразование происходит так: из х64 в х86: просто отбрасываются 32 старших разряда; из х86 в х64: для WParam просто дорисовываются 32 нуля слева, что превращает WPARAM в UInt64, при этом получаются сюрпризы если там предполагалось отрицательное число со знаком; Для LPARAM - идёт расширение со знаком, т.е. значение интерпретируется как Int32, после этого расширяется до Int64 с сохранением знака. Если там предполагалось беззнаковое число больше MaxInt[32], то снова получаются сюрпризы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2017, 20:45:17 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39514764&tid=2041860]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 327ms |

| 0 / 0 |
