![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Red Wind |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 280 Регистрация: 25.6.2004 Где: Минск Репутация: нет Всего: 2 |
Столкнулся с необходимостью получения данных из dll. Для этого я использую SendMessage WM_COPYDATA. Но в получающей прогрмме я не могу корректно прочитать полученные данные. Как я понял, прога обращаеться не в ту что нужно область памяти. Т.к. если посылать сообщение только внутри проги, а не из dll или из другого приложения всё отлично работает. Скажите пожалуйста, в чём я допустил ошибку.
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Добавлено @ 23:31 Попробуй слать PChar, а не стринг. Со стрингом будут проблемы из-за его устройства. Это сообщение отредактировал(а) Snowy - 5.11.2005, 23:31 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Хотя и с PChar'ом тоже будут.
Данные просто должны быть единым целым и не включать указателей. В твоем варианте ты отправляешь не стринг, а его указатель. Вот он и не проходит. |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 6 Всего: 50 |
Данные должны быть переданы непрерывной структурой.
String - это указатель. Работать с с динамическими строками надо соответственно. Вот пример:
-------------------- |
|||
|
||||
| p0s0l |
|
||||||||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 14 Всего: 112 |
Правильно делается так:
Если же нужно переслать только 1 число и 1 строку, то проще сделать так, как предложил Snowy, только немного изменив:
Если длина строки не превышает 255 символов, то можно воспользоваться твоим изначальным вариантом, переправив структуру TMsgType:
-------------------- С уважением, г-н Посол. |
||||||||||
|
|||||||||||
| Red Wind |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 280 Регистрация: 25.6.2004 Где: Минск Репутация: нет Всего: 2 |
Всем спасибо! Но первые два варианта не работают
|
|||
|
||||
| casinosoftguru |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 22.12.2008 Репутация: нет Всего: нет |
Господа! Все отлично работает в XP но не работает под Vista! Есть идеи ?
|
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 16 Всего: 89 |
Ошибка в 13-й строке.
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 6 Всего: 50 |
Версия Delphi? -------------------- |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
||||
|
||||
![]()
|
| Правила форума "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. |