![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Hamster |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 17.4.2003 Репутация: нет Всего: нет |
Передача месаги между прилажениями!
Привет всем! есть проблема с передачей стринга от одного прилажения другому! Я делаю это с помощью винапи sendmessage регестрирую свою месагу и всё в таком ключе. Но возникла всего одна проблема! При получении месаги на противоположной стороне компилятор начинает жудко ругаться и выкидывает меня! SendMessage(hWnd,WM_MYMESSAGE,0,Integer(PChar(s))); ------------------------------- inherited; if Msg.Msg = WM_MYMESSAGE then memo1.text:=string(msg.LParam); Короче я не знаю как передать строку! Кто может помочь? Зарание спасибо! ЗЫ А как разослать месагу ВСЕМ окнам в системе? |
|||
|
||||
| Fedor |
|
|||
![]() Днепрянин ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2090 Регистрация: 8.2.2003 Где: Великий Репутация: нет Всего: 32 |
Ну, посылаешь ты вроде-бы правильно. Вот только прием не очень...
Рассмотрим Unit, в котором прописан прием:
Это сообщение отредактировал(а) p0s0l - 29.9.2005, 12:31 -------------------- Мы - Днепряне. Мы всех сильней. |
|||
|
||||
| man2002ua |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
Компилятор или программа? А знаете ли вы: Что два процесса не могут читать данные друг друга, т.к. они находяться в различных адресных пространствах? Т.е. когда один пишет "я передаю тебе указатель на свою переменную по адресу 0х1111", то другой получив это сообщение (в твоем варианте) пытается читать этот адрес, но в своем пространстве, где ее никто не объявлял - отсюда access violation. Одно из решений - передавать сообщение так:
-------- а принимать так --------
Это сообщение отредактировал(а) p0s0l - 29.9.2005, 12:31 -------------------- "Нет ничего более постоянного, чем временное" |
||||||
|
|||||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 1 Всего: 64 |
Еще для передачи данных из одного процесса в другой существует месага WM_COPYDATA (вроде так
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Hamster |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 17.4.2003 Репутация: нет Всего: нет |
To_Morpheus: Это немного не то!
To_man2002ua: 1) Я не понял что за переменная STRING_LEN, кокого она типа! 2) ReadProcessMemory - включает в себя 5 параметров, а у тебя всего 4 |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
<Spawn>, твой ответ лучше!
Hamster, смотри то, что сказал Spawn - не забивай голову -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| Hamster |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 17.4.2003 Репутация: нет Всего: нет |
Тогда как сделать мой вариант?
|
|||
|
||||
| Hamster |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 17.4.2003 Репутация: нет Всего: нет |
Ладно! Я сделал через атомы! Хотя предыдущий вопрос в силе!
|
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
делаешь SendMessage(hwnd, WM_COPYDATA,<your window handle>,COPYDATASTRUCT)
---- при приеме этого сообщения - рассматривай LParam, как указатель на COPYDATASTRUCT, в которой - есть указатели на передаваемые данные. Еще посмотри файл справки на тему WM_COPYDATA -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |