Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

Dll и TThread   Найти похожие ветки 

 
Юрий Зотов ©   (2004-11-01 13:22) [160]

Всю ветку читать не стал - слишком длинная. Поэтому просто скажу, в чем тут, похоже, дело и сорри, если повторю кого-то или скажу "не в кассу".

Проблема XP-DLL-отладчик известная (хоть в однопоточном, хоть в многопоточном приложении). По какой-то причине отладчик не подгружает отладочную символьную информацию из DLL и поэтому брейкпойнты в DLL не срабатывают (хотя код работает). Лечится это либо установкой эксперта IDE (встречал в сети, но где - не помню), либо так.

1. В DLL сразу после главного begin пишем любой MesssageBox  -что угодно, лишь бы тормознуть программу.

2. Когда этот MessageBox появится, переключаемся в Delphi, жмем Ctrl-Alt-M, в появившемся окне (слева внизу) находим свою DLL, жмакаем по ней правой кнопкой мыши и выбираем Reload Symbol Table. Если все прошло ОК, то справа увидим, что отладочная информация подгрузилась.

3. В MessageBox жмем OK - теперь брейкпойнты должны работать.


 
DiamondShark ©   (2004-11-01 13:24) [161]

Да нет там никаких проблем икспи-отладчик...


 
Digitman ©   (2004-11-01 13:32) [162]


> DiamondShark ©   (01.11.04 13:04) [158]
> Не-а. У него там WaitFor стоит.


WaitFor в таком контексте [см. 154] д.б. бы вызвать дэдлок, однако автор ничего не говорит на тему якобы "зависания" приложения, вызывающего ДЛЛ по LoadLibrary.


 
DiamondShark ©   (2004-11-01 13:40) [163]


> Digitman ©   (01.11.04 13:32) [162]

Мало ли что автор не говорит, он свой реальный код тоже долго не говорил.
Тем не менее, его код на LoadLibrary именно зависает.


 
Reindeer Moss Eater ©   (2004-11-01 13:50) [164]

Тем не менее, его код на LoadLibrary именно зависает.

А еще он говорит, что в консольном приложении все нормально.
И никакой waitfor ему не помеха.


 
Digitman ©   (2004-11-01 13:58) [165]

что-то подустал я тут из пустого в порожнее переливать ..

автор давно уже ни мычит ни телится


 
DiamondShark ©   (2004-11-01 14:28) [166]


> Reindeer Moss Eater ©   (01.11.04 13:50) [164]
> А еще он говорит, что в консольном приложении все нормально.
> И никакой waitfor ему не помеха.

А мы на слово никому не верим.

Проблема воспроизведена, причина описана, пути решения намечены.
Ждём-с реакции автора...


 
dms_main ©   (2004-11-02 22:11) [167]

Господа! Все оказалось намного проще....
Execute выполняется после begin...end. библиотеки, правда есть одно но - но это не важно.
Решается так :
Создаем еще один класс потока,
create его ставим в begin...end. библиотеки, на его execute забиваем create того кода что был в begin ... end. библиотеки -
и все у нас работает прекрасно.
Спасибо всем кто принял участие в решении вопроса.....



Страницы: 1 2 3 4 5 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.74 MB
Время: 0.057 c
1-1098971775
Константинов
2004-10-28 17:56
2004.11.14
Как выделить часть текста в StringGrid


4-1096918358
X-RayMan
2004-10-04 23:32
2004.11.14
Точность...


1-1099385372
Sash
2004-11-02 11:49
2004.11.14
excel


1-1098944110
П7
2004-10-28 10:15
2004.11.14
Почему ошибка?


3-1097590398
}|{yk
2004-10-12 18:13
2004.11.14
С какой радости Borland в DB.pas написала такое?