|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.08.2015, 02:10 | #1 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 225
|
WM_COPYDATA Передать Собственную структуру
Собственно сабж, не могу понять как передать структуру...
Связываю недо программу чужую поддерживающую скрипты на делфи, ну уж оооочень ограниченно, но она поддерживает dll и winapi. Вот код в ней: Код:
Код подстроил из примеров, которые нашел собственно на нашем форуме. Структура (TCharArray) выглядит так: Код:
Последний раз редактировалось IvaniuS; 18.08.2015 в 12:35. |
18.08.2015, 07:42 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,357
|
И в чем вопрос?
|
18.08.2015, 12:32 | #3 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 225
|
WM_COPYDATA Передать Собственную структуру, собственно как?)
Со строкой все понятно откуда размеры брать и не только, а вот как правильно посчитать и передать структуру - не понятно, видел пример там где в TMemoryStream записывали, но я если честно слабо представляю как это сделать со структурой. Последний раз редактировалось IvaniuS; 18.08.2015 в 12:35. |
18.08.2015, 12:46 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну если в структуре есть тип string, то будет сложно. Придется сериализировать (Как раз через TMemoryStream к примеру). Если ты заменишь string на array[1..100500] of char то вычислить длину всей записи не будет составлять труда.
А вообще я бы не делал так, хотя я и не в курсе как твоя программа, та что получает, работает предварительно я бы точно не делал через копипаст.
I'm learning to live...
|
18.08.2015, 13:43 | #5 | |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 225
|
Цитата:
|
|
18.08.2015, 13:46 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Тогда рекомендую так и описать. Тогда в структуре не будет никаких указателей, и ее можно преспокойненько разместить в куче, и передать адрес.
I'm learning to live...
|
18.08.2015, 14:50 | #7 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 225
|
Подскажите тогда пожалуйста решение, если структура будет описана как:
Код:
|
18.08.2015, 15:04 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну так по идее подойдет и твое решение. Должно подойти.
Учитывая что Код:
I'm learning to live...
|
19.08.2015, 02:48 | #9 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 225
|
Благодарю, тема закрыта, все достаточно просто оказалось как вы и написали.
|
19.08.2015, 08:21 | #10 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну да. Это называется финализацией структуры. Ну или образмериванием, когда структура не содержит ни одного указателя, тогда это получается голые данные, размеченные полями, и их можно передавать потоком байт.
I'm learning to live...
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не получается передать структуру в функцию по ссылке. | Pug_from_Mordor | Помощь студентам | 2 | 27.04.2015 18:43 |
ООП в C++Builder: помогите передать в функцию указатель на структуру | =A_Z_A= | Помощь студентам | 2 | 13.03.2014 12:05 |
Как передать структуру в поток при _beginthread | Ksardas13 | Общие вопросы C/C++ | 2 | 10.03.2012 05:00 |
Как передать структуру в другой класс? | Phallic | Общие вопросы C/C++ | 10 | 11.12.2011 13:20 |
Как передать структуру через socket | moiav | Общие вопросы C/C++ | 6 | 18.05.2011 16:27 |