|
Дескрипторы в Win64x - 4х байтные или 8-ми? | ☑ | ||
---|---|---|---|---|
0
H A D G E H O G s
25.07.14
✎
14:55
|
Дня доброго.
Что то глуплю. Указатели стали либо 8 байтные либо 4-х. А дескрипторы? Судя по http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx и строке точно также. Теперь вопрос - это просто для унификации, ведь в 32-х разрядных приложениях (которые надо поддерживать) 4 старших байта тупо не используются? |
3 4 |
||
1
H A D G E H O G s
25.07.14
✎
14:56
|
И строке: HWND IntPtr
|
|||
2
H A D G E H O G s
25.07.14
✎
14:56
|
||||
3
Trotter
25.07.14
✎
15:01
|
(0) BYTE A byte (8 bits).
|
5 |
||
4
Trotter
25.07.14
✎
15:03
|
(0) Вы решили уйти из 1С ?
|
|||
5
H A D G E H O G s
25.07.14
✎
15:04
|
(3) Че это?
|
|||
6
Trotter
25.07.14
✎
15:11
|
не совсем понятен вопрос, если хотите узнать сколько весит в памяти int? напишите простенькую программку под выделения одной переменой и посмотрите.
|
|||
7
acsent
25.07.14
✎
15:20
|
#if defined(_WIN64)
typedef __int64 INT_PTR; #else typedef int INT_PTR; #endif |
|||
8
H A D G E H O G s
25.07.14
✎
15:23
|
Интересно, зачем они сделали их 8 байтными.
|
|||
9
acsent
25.07.14
✎
15:28
|
Зачем HWND имеет тип IntPtr?
|
10 |
||
10
H A D G E H O G s
25.07.14
✎
15:31
|
(9) Да
|
|||
11
Кирпич
25.07.14
✎
15:51
|
А почему в 32-х разрядных 4-байтные? Это ведь тоже очень интересно.
|
17 |
||
12
H A D G E H O G s
25.07.14
✎
15:53
|
2-х байтных не хватило
|
14 |
||
13
Serginio1
25.07.14
✎
16:03
|
||||
14
Кирпич
25.07.14
✎
16:05
|
(12) ну значит и 4 байтных теперь нехватило
|
|||
15
бомболюк
25.07.14
✎
16:06
|
что то помнится мне что для некоторых типов хендлов (вроде HINSTANCE) его значение напрямую связано с адресом ячейки памяти, так что эти типы очень тесно связаны.
|
16 |
||
16
ДенисЧ
25.07.14
✎
16:08
|
(15) В вин64 - прямая адресация?
Тебя когда заморозили, если только что разморозили? ПРямая адресация была только в досе и вин 2, что работала в реальном режиме... |
17 |
||
17
orefkov
25.07.14
✎
16:17
|
(16)
Имеется ввиду виртуальная память. Да, в винде HINSTANCE модуля есть адрес его расположения в адресном пространстве процесса. Собственно, потому HINSTANCE в одном процессе бесполезен в другом. Многие хендлы скорее всего также раньше напрямую указывали на адреса связанных с ними данных. Потому в win64 и стали 8-байтными. (11) 32 / 8 == 4 |
19 |
||
18
бомболюк
25.07.14
✎
16:22
|
во, точно. HInstance модуля - это указатель на структуру IMAGE_DOS_HEADER.
|
|||
19
H A D G E H O G s
25.07.14
✎
16:54
|
(17) Да, в винде HINSTANCE модуля есть адрес его расположения в адресном пространстве процесса.
Вот это поворот, не знал. |
20 |
||
20
oleg_km
25.07.14
✎
17:47
|
(19) По-моему, это недокументированная фича.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |