Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> выгрузка длл командой из длл, как 
:(
    Опции темы
Step
Дата 14.7.2003, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



пробывал посылать месагу приложению, а оно потом должно вызывать freelibrary, а получается глюк...


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
GanZaleZ
Дата 15.7.2003, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 15.7.2003

Репутация: нет
Всего: нет



Хех не знаю что получится , надо будет попробовать , но все же если в длл создать поток который бы выгружал длл , тут цэлый каламбур получился !
PM MAIL   Вверх
RAN
Дата 15.7.2003, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



Знаешь наверно в чём дело? В синхронизации. Если ты посылаешь message через SendMessage, то эта функция ждёт обработки сообщения, чтобы вернуть HRESULT. Поэтому если библиотека освобождается в обработке твоего сообщения, то в момент возврата её уже нет (возвращаться некуда - глюк).

Попробуй использовать какой-нибудь флаг. Устанавливаешь его в истину перед входом в Dll-функцию, которая может послать сообщение "выгрузи меня", а по возвращении из неё проверяешь состояние флага, если ложь, то FreeLibrary. Сам флаг устанавливается в истину при обработке приложением твоего сообщения из Dll.
PM MAIL ICQ   Вверх
Vyacheslav
Дата 15.7.2003, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



Или попробуй послать сообщение через PostMessage


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
RAN
Дата 15.7.2003, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



Боюсь, что PostMessage тоже может глючить, если сообщение посылается в другую нить. Есть одно важное правило в многозадачных приложениях: нельзя делать каких-либо предположений о времени выполнения команды. Одним словом прога будет иногда глючить, иногда нет. И такую ошибку найти сложнее всего.
PM MAIL ICQ   Вверх
Step
Дата 16.7.2003, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



RAN после отправки сообщения, я жду несколько секунд, а потом только выгружаю, так что сенду есть что и куда возращать....


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
DENNN
Дата 16.7.2003, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Формально прав RAN, то что сегодня хватило 1 секунды не означает что так будет всегда и на других компах.
PM ICQ   Вверх
Step
Дата 16.7.2003, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



DENNN теоретически прав, но у меня комп на двух пентах 966 и 512 метров памяти и при этом задержка 10 секунд также не дает результата, прога глючит....,




--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
DENNN
Дата 16.7.2003, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Причина не в задержке а в чем-то другом.
Сделай как советовали: семафор или Mutex, когда длл хочет чтоб ее выгрузили из памяти она устанавливает етот семафор, а нить в основной проге следит за семафором и при его установке выгружает длл.

PM ICQ   Вверх
RAN
Дата 16.7.2003, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



Привёл бы фрагмент кода, где Dll просит себя выгрузить и код функции обработчика сообщений
PM MAIL ICQ   Вверх
Step
Дата 17.7.2003, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



DENNN ты на таймере проверять семафор предлагаеш или как..
RAN постараюсь


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
DENNN
Дата 17.7.2003, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



да, проверка раз в 3 секунды я думаю систему не сильно перегрузит smile.gif
PM ICQ   Вверх
Step
Дата 17.7.2003, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



DENNN имхо - геморой


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
DENNN
Дата 17.7.2003, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



имхо геморрой будет заводить отдельную нить, которая по WaitForSingleObject замрет на неопределенное время в ожидании когда длл освободит мьютекс.

гемор будет в любом случае, если ты не найдешь способ выгрузить длл "из самой себя".
PM ICQ   Вверх
Step
Дата 17.7.2003, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



DENNN уболтал


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0639 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.