|
35 / 35 / 15
Регистрация: 06.01.2014
Сообщений: 707
|
||||||||||||||||||||||||||
Передача указателя на класс через SendMessage17.12.2015, 13:52. Показов 1549. Ответов 11
Метки нет (Все метки)
Приветствую. Не получается передать указатель на экземпляр класса через SendMessage.
Передаю так:
Добавлено через 10 часов 0 минут Ап. Добавлено через 36 минут Вот так надо Прием:
Но если передавать также мой созданный класс типа:
Почему так? Добавлено через 2 часа 56 минут Никак не получается
0
|
||||||||||||||||||||||||||
| 17.12.2015, 13:52 | |
|
Ответы с готовыми решениями:
11
Передача Float через SendMessage(LParam)
Передача указателя функции класса A в класс B |
|
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
||
| 17.12.2015, 14:00 | ||
|
COPYDATASTRUCT* pGet_Data; pGet_Data = (COPYDATASTRUCT*)lParam; Я не уверен, но Попробуй..
1
|
||
|
35 / 35 / 15
Регистрация: 06.01.2014
Сообщений: 707
|
|
| 17.12.2015, 14:09 [ТС] | |
|
SSC, P означает Pointer - указатель.)
0
|
|
|
Ушел с форума
|
||||||
| 17.12.2015, 16:00 | ||||||
|
Если нужно передать значение web_view, тогда проще так:
1
|
||||||
|
35 / 35 / 15
Регистрация: 06.01.2014
Сообщений: 707
|
|
| 17.12.2015, 16:01 [ТС] | |
|
Убежденный, так пробовал. Суть в том что мой класс, приведенный выше, передается нормально. А класс WebView* нет. Нет доступа к методам.
Я попробовал засунуть указатель WebView* в мой класс My_Class. Передается. Значение WebView совпадает. Но доступа к методам все равно нет. Почему?
0
|
|
|
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
|
|
| 17.12.2015, 16:57 | |
|
Вы ведь передаёте и принимаете указатель в рамках одного процесса?
Сори, не заметил этого: Send_Data.cbData = sizeof(WebView);Добавлено через 5 минут Надо посмотреть на класс WebView, может у него есть таблица виртуальных методов
0
|
|
|
Ушел с форума
|
||
| 18.12.2015, 10:40 | ||
|
Randen, ты же, я надеюсь, не пытаешься передать указатель на объект в другой процесс?
0
|
||
|
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
|
|
| 18.12.2015, 11:04 | |
|
Убежденный, я тоже об этом подумал сразу (был тут недавно случай, когда хотели записать/прочитать из файла структуру с указателем на массив в куче). Но
cbData = sizeof(WebView), т.е. передаёт "структуру" WebView целиком (имеет место быть побайтовое копирование), и если этот класс содержит виртуальные методы, то они не будут работать в другом процессе, однозначно.class My_Class у него передаётся нормально. Надо смотреть на класс WebView.
0
|
|
|
Ушел с форума
|
|
| 18.12.2015, 12:31 | |
|
Не проверял, но скорее всего (по логике вещей), обычные методы
тоже не будут работать. Ведь другой процесс про них "ничего не знает", там нет нужных функций. Так можно передавать разве что структуру в стиле C с простыми членами. И даже при этом еще следует позаботиться о согласованном выравнивании и размерах типов.
0
|
|
|
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
|
|
| 18.12.2015, 12:50 | |
|
С выравниванием может быть косяк, но если опустить этот момент (т.е. sizeof классов в обоих приложениях одинаковый), то достаточно описать этот класс в приложении-приемнике (если он не будет содержать ни таблицу вирт. методов, ни указателей), то методы отработают. Оно и получится, что передаём Си структуру, и описываем для неё функуии (методы класса). Но это уже не по стандарту плюсов.
Уйти от передачи экземпляра класса и передавать массивом POD типа (исключаем выравнивание), как и указано в самом начале, но кастить эти данные к классу лучше не стоит.
0
|
|
|
Ушел с форума
|
|
| 18.12.2015, 13:00 | |
|
А еще лучше сразу взять Boost.Serialization и забыть про эти проблемы.
В том числе и проблемы с виртуальными методами.
1
|
|
|
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
|
|||||||||
| 18.12.2015, 18:27 | |||||||||
![]() Добавлено через 37 минут Randen, зачем указатель переводить в char[], а потом обратно в (WebView*). Добавлено через 4 минуты
0
|
|||||||||
| 18.12.2015, 18:27 | |
|
Помогаю со студенческими работами здесь
12
Написать обработчик исключений ситуации при преобразовании указателя на класс B до указателя на абстрактный класс А ... Передача указателя на объект класса через this Напишите программу, которая будет выводить слова через класс( методом указателя this)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|