![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
кривокодер ;)
Форумчанин
Регистрация: 20.06.2008
Сообщений: 707
|
![]()
Здравствуйте, уважаемые!
Подскажите, как передать сложную структуру пользовательским сообщенем через SendMessage? Пример структуры: Код:
Код:
Подскажите как правильно? WM_COPYDATA не интересует. Заранее благодарен!
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид} |
![]() |
![]() |
![]() |
#2 |
кривокодер ;)
Форумчанин
Регистрация: 20.06.2008
Сообщений: 707
|
![]()
извиняюсь, ответ нашел сам)
Структура: Код:
Посылка: Код:
Прием: Код:
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид} |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
Кому посылаем-то? Это будет работать только в рамках одного процесса.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
![]() |
#4 |
кривокодер ;)
Форумчанин
Регистрация: 20.06.2008
Сообщений: 707
|
![]()
Это я экспериментировал с мессагами. В дальнейшем мессаги будут слаться из библиотеки, внедренной в другой процесс.
Навроде того: Код:
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид} Последний раз редактировалось Johnson; 22.12.2010 в 09:08. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
Тогда это не будет работать. SizeOf(String) = 4. Всегда. Вне зависимости от содержимого (данных) строки.
Как несложно сообразить, передав эти 4 байта в другой процесс вы не передадите все прочие Length(String) * SizeOf(Char) байт данных. Домашнее задание: объяснить, почему это работает в одном процессе. Мат-часть: http://www.transl-gunsmoker.ru/2009/...tml#references http://www.transl-gunsmoker.ru/2009/09/pchars.html http://wm-help.net/books-online/book/59464/59464-6.html http://wm-help.net/books-online/book.../59464-16.html
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
P.S. Решение: нужно сериализовать структуру в поток. Проще всего это сделать используя TPersistent вместо записей.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
![]() |
#7 |
кривокодер ;)
Форумчанин
Регистрация: 20.06.2008
Сообщений: 707
|
![]()
Да уже разобрался... Придётся всётаки использовать WM_COPYDATA
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид} |
![]() |
![]() |
![]() |
#8 |
кривокодер ;)
Форумчанин
Регистрация: 20.06.2008
Сообщений: 707
|
![]()
Чтот никак не получается с WM_COPYDATA
отправляю примерно так: Код:
Код:
что делаю не так?
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид} |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 05.07.2010
Сообщений: 136
|
![]()
А я бы предложил XML
|
![]() |
![]() |
![]() |
#10 |
кривокодер ;)
Форумчанин
Регистрация: 20.06.2008
Сообщений: 707
|
![]()
Эмм а причем тут XML??
прошлый раз писал по памяти и по примерам... щас вот код под рукой... Итак. Структура записи: Код:
Код:
Прием: Код:
В чем я не прав? Никак не могу сообразить... При бряке перед этой строкой вижу, что CurrentProcessId показывает правильно (как в диспетчере задач). ИД потока тоже правильный... А вот S пишет Inaccesable value ЗЫ: если строку объявить ShortString (S:string[255] ![]()
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид} |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание сложной структуры XML | artemavd | Общие вопросы Delphi | 24 | 19.11.2010 19:57 |
построение XML сложной структуры с помощью nativeXML | adben | Общие вопросы Delphi | 2 | 29.07.2010 07:06 |
символьные данные сложной структуры и имя массива как параметр функции | EkaterinaA | Помощь студентам | 3 | 22.02.2009 21:36 |
Сохранение в файл сложной динамической структуры | _Инженер_ | Общие вопросы Delphi | 24 | 20.10.2008 09:38 |