|
533 / 274 / 220
Регистрация: 14.11.2016
Сообщений: 1,054
|
|||||||||||
Указатель на vftable04.03.2020, 16:28. Показов 2610. Ответов 6
Метки нет (Все метки)
Код (х86)
Как понять следующее выражение:
(PDWORD)pObj - получаем адрес на который ссылается указатель pObj.2. *(PDWORD)pObj - первые 4 байта объекта по данному адресу (на рисунке случайно выделил 4 ячейки вместо 1-й) obj1 (63 строка кода).3. (PDWORD)(*(PDWORD)pObj) - ссылаемся на адрес начала объекта obj1.4. PDWORD pVftable = (PDWORD)(*(PDWORD)pObj) - тут ссылаемся на адрес, который лежит в памяти по адресу определённому в п.3 ?!?!?!
0
|
|||||||||||
| 04.03.2020, 16:28 | |
|
Ответы с готовыми решениями:
6
Как получить ссылку на указатель или указатель на указатель в массиве?
|
|
533 / 274 / 220
Регистрация: 14.11.2016
Сообщений: 1,054
|
||||||
| 04.03.2020, 17:05 [ТС] | ||||||
|
Наверное сложно как-то изъяснился. Код работает правильно. Просто не совсем понятен вывод выражения. Почеркал на листочке и пришел к вывод, что pVftable при операции "равно" указывает на виртуальную таблицу. А изначально думал, что будет указывать на адрес 0x11223354
Добавлено через 19 минут
0
|
||||||
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,929
|
|||||||||||||||||||||||
| 04.03.2020, 17:14 | |||||||||||||||||||||||
Сообщение было отмечено anapshy как решение
Решение
Как несложно догадаться, адрес первого элемента структуры и адрес самой структуры это одно и то же, то есть
Самое забавное, что vftable - переменная, ее значение можно изменить. Тогда класс будет думать, что он, скажем, свой родитель. А можно и вызывать методы вручную:
0
|
|||||||||||||||||||||||
|
533 / 274 / 220
Регистрация: 14.11.2016
Сообщений: 1,054
|
||||||||||||
| 04.03.2020, 18:34 [ТС] | ||||||||||||
|
Базовый макет класса
Макет
0
|
||||||||||||
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,929
|
||||||
| 05.03.2020, 11:00 | ||||||
|
Помедитируйте еще над этим:
1
|
||||||
|
533 / 274 / 220
Регистрация: 14.11.2016
Сообщений: 1,054
|
||||||
| 05.03.2020, 14:58 [ТС] | ||||||
|
COKPOWEHEU,
... ещё добавить, чтобы методы с параметрами можно было вызывать))
0
|
||||||
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,929
|
|||||||||||
| 05.03.2020, 16:32 | |||||||||||
|
anapshy, Нет, так делать не надо. Если вы знаете, что параметр должен принимать, напишите соответствующий прототип функции. Если нет - просто не вызывайте.
Например, у вас есть класс:
Впрочем, использовать такую "микрохирургию мозга С++" на практике - идея не лучше. Вот в порядке изучения и извращения уже другое дело.
0
|
|||||||||||
| 05.03.2020, 16:32 | |
|
Помогаю со студенческими работами здесь
7
Как правильно удалять выделенную память под указатель на указатель?
Зачем нужен указатель на указатель при работе с однонаправленным списком? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|