Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глючит DLL 
V
    Опции темы
ilyalyu
Дата 5.10.2008, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Всплыла такая проблема. 

Я использую в программе DLL-ку. Когда запущена одна копия программы, то все работает нормально. Зато когда запущено две копии, то начинается какой-то глюк.

Причем, если я создаю две копии формы TMyFormForWorkingWithDLL, работающей с DLL-кой, но внутри одной программы, то опять все нормально. Но если те же самые две формы созданы каждая в своей копии программы, то все плохо.

На что тут можно обратить внимание?
PM MAIL   Вверх
Sansa
Дата 5.10.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Application в dll меняешь?
--------------------
- Здравствуйте, я Ваш патологоанатом
PM MAIL ICQ   Вверх
ilyalyu
Дата 5.10.2008, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



врядли. DLL (для кодирования аудио) вообще на C написана. врядли она меняет Application.
PM MAIL   Вверх
Sansa
Дата 5.10.2008, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



У тебя же форма в dll. Как она не использует Application?
--------------------
- Здравствуйте, я Ваш патологоанатом
PM MAIL ICQ   Вверх
ilyalyu
Дата 5.10.2008, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



форма в программе, а не в dll, и нужна она только для интерфейса. для каждой формы (которая находится в программе, а не в dll) создается поток (thread), который использует функции из dll (поток также создается внутри программы, а не внутри dll). так вот, если поток один, то все работает нормально. если потока два, но оба они созданы внутри одной программы, то тоже все нормально. а если те же два потока созданы в разных программах, то появляются глюки. таким образом, важно, что к dll обращаются именно две разные программы. так как если к ней обращаются два разных потока, находящихся внутри одной программы, то ничего плохого не происходит.

PM MAIL   Вверх
Sansa
Дата 5.10.2008, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Видьма dll не оптимизирована под многопоточную работу :(
--------------------
- Здравствуйте, я Ваш патологоанатом
PM MAIL ICQ   Вверх
ilyalyu
Дата 5.10.2008, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



я же говорю, с двумя потоками, находящимися внутри одной программы, dll работает нормально. значит дело не в потоках, а в наличии двух программ.
PM MAIL   Вверх
Sansa
Дата 6.10.2008, 05:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Скорее всего дело в Dll

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


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

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



Цитата(ilyalyu @  5.10.2008,  15:47 Найти цитируемый пост)
Всплыла такая проблема. 
Я использую в программе DLL-ку. Когда запущена одна копия программы, то все работает нормально. Зато когда запущено две копии, то начинается какой-то глюк.
Причем, если я создаю две копии формы TMyFormForWorkingWithDLL, работающей с DLL-кой, но внутри одной программы, то опять все нормально. Но если те же самые две формы созданы каждая в своей копии программы, то все плохо.
На что тут можно обратить внимание? 


IMHO, на глобальные переменные.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

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


 




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


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

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