|
Заблокирован
|
||||||
Передать значение переменной из одной программы в другую24.03.2014, 23:12. Показов 3249. Ответов 15
Метки нет (Все метки)
Всем добрый вечер.
Появилась такая задача:передать значение переменной из одной программы в другую ( в моём случае это переменная int a=10). Реализовать это нужно через обработку сообщения WM_COPYDATA. Появились проблемы с заполнением структуры COPYDATASTRUCT ( пишет , что IpData не является членом структуры ) . Перечитал уже многое , но выход так и не нашёл . Вот код первой программы ( отправителя ):
Заранее спасибо за помощь!
0
|
||||||
| 24.03.2014, 23:12 | |
|
Ответы с готовыми решениями:
15
Передать значение переменной в из одной функции в другую
|
|
19 / 14 / 2
Регистрация: 08.11.2009
Сообщений: 79
|
|
| 24.03.2014, 23:23 | |
|
Обычно указатели именуются lp (l которая л), а не Ip
0
|
|
|
Заблокирован
|
|
| 24.03.2014, 23:31 [ТС] | |
|
Что Вы имеете в виду ? Не пойму)
0
|
|
|
19 / 14 / 2
Регистрация: 08.11.2009
Сообщений: 79
|
|
| 24.03.2014, 23:32 | |
|
p.IpData=&a; // на первый байт данных
Если компилятор говорит, что IpData не член структуры, то надо посмотреть внимательно и понять, что там lpData
0
|
|
|
Заблокирован
|
|
| 24.03.2014, 23:40 [ТС] | |
|
Я вот сижу и читаю , что IpData - это указатель на первый байт данных( Указывает на данные, которые будут переданы в принимающую прикладную программу) .
Может я что-то не так понял ? Вроде ж верно пишу ( я ж переменную a собираюсь передавать ) . Подскажите что не так , пожалуйста Уже не первый день мучаюсь да не пойму никак
0
|
|
|
19 / 14 / 2
Регистрация: 08.11.2009
Сообщений: 79
|
|
| 24.03.2014, 23:41 | |
|
название переменной неправильное. IpData это неправильно. Правильно lpData
Разницу видите?
0
|
|
|
Заблокирован
|
|||||||||||
| 25.03.2014, 00:03 [ТС] | |||||||||||
|
Аа, вот я даю , два дня мучился . Спасибо !
Добавлено через 17 минут Извините , можно у Вас ещё кое-что спросить? Не могу сообразить , как принять значение переменной во 2-ом приложении. Делаю так:
//получение данных
подскажите , пожалуйста , как это должно выглядеть?
0
|
|||||||||||
|
19 / 14 / 2
Регистрация: 08.11.2009
Сообщений: 79
|
|
| 25.03.2014, 00:36 | |
|
http://msdn.microsoft.com/en-u... s.85).aspx
Сам никогда таким не пользовался, поэтому куска кода попроще нету
0
|
|
|
Супер-модератор
|
||
| 25.03.2014, 01:25 | ||
|
1
|
||
|
Заблокирован
|
||||||||||||||||
| 25.03.2014, 11:06 [ТС] | ||||||||||||||||
|
Да я читал это . Всё равно запутался , что и куда . Там почему -то ещё через case делается всё это дело
Добавлено через 38 секунд Да я как раз по этому примеру и учился ) Но там как-то написано непонятно для меня:
да и дальше не совсем понятно , что и куда .. там же в примере через структуру переменная объявляется ,а у меня просто Добавлено через 43 минуты Можете , пожалуйста , помочь ? Я уже не знаю, что делать . При запуске 2-я программа выводит постоянно ноль , а не 10. Вот код отправителя:
Добавлено через 8 часов 53 минуты посмотрите , пожалуйста очень нужно)
0
|
||||||||||||||||
|
Супер-модератор
|
|||||||||||
| 25.03.2014, 11:29 | |||||||||||
|
Во-первых, не там инициализируется COPYDATASTRUCT, то есть, отправитель должен выглядеть так:
1
|
|||||||||||
|
Заблокирован
|
||||||
| 25.03.2014, 11:48 [ТС] | ||||||
|
Спасибо большое, ошибки понял .
А как вывести полученное число через MessageBox ? Когда вот так пишу выводит ноль :
0
|
||||||
|
Супер-модератор
|
|
| 25.03.2014, 12:08 | |
|
У меня выводит число, которое было передано. Если ты перед этим щелкнул мышью на приложении-отправителе, чтобы отослать данные. Без этого естественно будет 0, глобальные переменные инициализируются нулем.
0
|
|
|
Заблокирован
|
||||||
| 25.03.2014, 12:19 [ТС] | ||||||
|
Так я также вроде делаю. Сначала запускаю программу - получатель ( чтобы 1-я прога смогла её найти ) , потом запускаю программу-отправитель , нажимаю в ней левую клавишу мыши ( пишет , что получатель найден ) , потом нажимаю левую кнопку мыши во 2-ой программе и мне выводит ноль .
Я же правильно вывожу ?
0
|
||||||
|
Супер-модератор
|
|
| 25.03.2014, 12:52 | |
|
Правильно выводишь. Но после того, как тебе будет показано сообщение, что все в порядке - надо этот MessageBox закрыть, и только потом пытаться выводить полученную информацию, если сообщение "Получатель найден" останется открытым - будет 0...
1
|
|
|
Заблокирован
|
|
| 25.03.2014, 12:58 [ТС] | |
|
Спасибо Вам большое за помощь! Вы правильно подметили ) Всё верно
0
|
|
| 25.03.2014, 12:58 | |
|
Помогаю со студенческими работами здесь
16
Как передать значение переменной из одной формы в другую Как передать значение переменной из одной формы в другую? Как передать значение переменной из одной страницы в другую? Как передать значение переменной из одной формы в другую? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|