![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
budg |
|
||||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.12.2005 Репутация: нет Всего: нет |
Всем привет!
Надо предать параметры в форму, которая находиться в dll-ке Соб-сно вот код: Вызывающая прога
Вот код dll-ки
При нажатии на кнопку в вызывающей форме, параметры описанные константами должны передаться в поля формы. В результате вылетает "Access violation...." Понимаю, что где-то не прав..... но где? хелп |
||||
|
|||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
наверное в этой строке
откуда длл знает об твоем приложении? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Quadr0 |
|
|||
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 02:54 |
|||
|
||||
budg |
|
||||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.12.2005 Репутация: нет Всего: нет |
Э-э-э, а как же? Форму-то создавать надо... тем более, что без передачи параметров все нормальненько ![]() формочка высвечивается. Проблема появилась как только параметры начал передавать... ![]() Один раз как-то сработало, но в полях формы было совсем не то, что надо... |
||||
|
|||||
Quadr0 |
|
|||
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 02:54 |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
мож стринг сбивает с толку замени на Pchar -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
budg |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.12.2005 Репутация: нет Всего: нет |
Рекомендация с заменой кода не помогла...
![]()
Это как ? ![]() Добавлено @ 16:02
Не прокатило... |
||||||
|
|||||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Для начала все же прочитай комментарий, который в файл .DPR записывает мастер создания DLL про ShareMem...
-------------------- |
|||
|
||||
Quadr0 |
|
|||
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 02:55 |
|||
|
||||
p0s0l |
|
||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
У тебя функции объявлены по-разному...
Добавлено @ 21:22 (либо объявляй оба раза с stdcall, либо его вообще убирай) Добавлено @ 21:26 Ну и также, как уже было замечено, раз у тебя используются динамические строки, то нужно и в проекте и в DLL прописать в uses ShareMem... -------------------- С уважением, г-н Посол. |
||||
|
|||||
p0s0l |
|
||||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
PS: еще стоит передавать в функцию Application.Handle:
Это сообщение отредактировал(а) p0s0l - 22.12.2005, 21:40 -------------------- С уважением, г-н Посол. |
||||||
|
|||||||
z-END |
|
|||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: 11 Всего: 102 |
а если просто пердавать Application?!
и в dll до создания формы прописать
-------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Можно и так. Только еще один момент - надо запоминать текущее значение и потом восстанавливать при выгрузке DLL (DLL_PROCESS_DETACH).
Это сообщение отредактировал(а) p0s0l - 22.12.2005, 22:06 -------------------- С уважением, г-н Посол. |
|||
|
||||
budg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 21.12.2005 Репутация: нет Всего: нет |
Спасибо всем.
Пытаюсь осмыслить вышесказанное... ![]() YES!!! ![]() Значит так... 1. поставил ShareMem где надо 2. поменял string на PChar // на всякий случай 3. убрал stdcall после этого уже все заработало.... ![]() 4. Добавил тему с "Application.Handle". Тоже работает(разумеется). Появилось отличие в том, что при закрытии формы длл-ки, минимизируется форма вызывающей проги. Думаю зачем мне это нужно... счас пороюсь с DLL_PROCESS_DETACH Это сообщение отредактировал(а) budg - 23.12.2005, 12:13 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |