![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Точка останова в DLL
GEN++ © (2005-12-22 20:26:00)В литературе рекомендуют:
открыть прект с DLL
RUN => Parameters => в появившемся окне указать
программу, вызывающую мою DLL
в DLL поставить точки останова
запустить Run программу
Делаю так, программа вызывается, но останова
при обращенн к DLL нет
Что делаю не так.
GEN++ (2005-12-23 09:00:00) [1]>begin...end ©
Спасибо, помогло
Если вы работаете под операционной системой Windows XP, то при отладке DLL-библиотек у вас возникнут трудности. Они заключаются в том, что отладчик Delphi не загружает символы отладочной информации из библиотеки.
Эта ошибка уже исправлена в Delphi 7, но если вы работаете с более ранними версиями, вам пригодится этот совет: выполните все приготовления к отладке, как было описано выше, запустите отладку. После того, как главное приложение запустится, переключитесь в Delphi и нажмите комбинацию клавиш Ctrl+Alt+M. В открывшемся окне списка загруженных модулей найдите ваш модуль, щелкните на нем правой кнопкой мыши и выберите пункт Reload Symbol Table. В окне, которое появится, введите полный путь к вашей DLL и нажмите ОК. Таблица отладочных символов должна перезагрузиться и вы получите возможность устанавливать точки прерывания и следить за поведением вашего Shell extension.
После этой операции точки останова заработали
begin...end (2005-12-23 08:25:00) [2]> GEN++ © (22.12.05 22:52) [5]
> XP
http://yandex.ru/yandsearch?stype=www&nl=0&text=xp+%EE%F2%EB%E0%E4%EA%E0+dll
?
GEN++ (2005-12-22 23:33:00) [3]Ни галочек ни перечеркиваний
Что значит не включен отладчик, где его включить???
DrPass (2005-12-22 23:00:00) [4]
> красный кружок слева от текста
Когда запускаешь, кружок с галочкой, или перечеркнут? Или вообще без признаков?
В первом случае exe не вызывает функцию, на которой ты поставил точку останова. Во втором... черт его знает. Если с другими файлами все точно ОК, может помочь Build. В третьем случае у тебя не включен отладчик
GEN++ (2005-12-22 22:52:00) [5]>begin...end ©
XP
>DrPass ©
Точки останова как отображаются: красный кружок слева от текста
и красная полоса поперек, ставлю 2-ным кликом мыши.
Другая DLL не запускаеися, поскольку запускеаемый exe находится
в папке с DLL (если убить DLL - exe не запускается из-за отсуиствия DLL)
DrPass (2005-12-22 21:50:00) [6]
> GEN++ © (22.12.05 21:22) [2]
Точки останова как отображаются - нормально, с галочками? И нет ли на диске другой копии твоей DLL, которую может подхватывать программа вместо отлаживаемой?
begin...end (2005-12-22 21:31:00) [7]> GEN++ © (22.12.05 20:26)
XP?
GEN++ (2005-12-22 21:22:00) [8]>DrPass ©
через F9, стоя в открытом проекте DLL
DrPass (2005-12-22 21:13:00) [9]Смотря что ты запускаешь. Если запускаешь программу руками, а не проект через F9, то результат вполне логичный