Как отлаживать плагин в exe с закрытым исходным кодом?

Я пишу плагин для музыкального плеера AIMP, который сам по себе является закрытым, но имеет документацию для добавления плагинов. Интерфейс доступен в Delphi, поэтому я пытаюсь понять, как использовать RAD Studio Delphi 10.3 Community Edition.

Я наткнулся на одну из следующих ситуаций:

  • Что-то не так с тем, как я вызываю методы AIMP или как я настраиваю параметры
  • Что-то не так с методом, который я вызываю

Я настроил параметры запуска так, чтобы программа AIMP запускалась при нажатии кнопки «Выполнить». Я также включил Tools > Options > Debugger > Embarcadero Debuggers > Debug spawned processes. Однако программа не остановилась на моей точке останова, и перед точкой останова отображался серый значок X.

Оказывается, это было потому, что у меня также была версия скомпилированной dll в каталоге плагина AIMP, поэтому она загружала эту старую версию, а не мою недавно скомпилированную. Но даже когда я удаляю старую версию ... как я могу заставить ее вызывать новую версию? Когда я создаю свою dll и вставляю ее в каталог плагинов AIMP, она загружается, и это отражается на экране настроек. Я даже могу показать окно сообщения, когда пользователь изменяет настройки. Но копирование dll означает, что я не могу останавливаться на точках останова.

Как я могу остановить отладчик на моей точке останова, чтобы я мог пошагово выполнять программу, в идеале имея возможность видеть значения локальных переменных?


person lucidbrot    schedule 03.09.2020    source источник
comment
Используете ли вы событие после сборки для копирования библиотеки DLL в каталог подключаемого модуля AIMP?   -  person Brian    schedule 03.09.2020
comment
@Brian Нет, пока я вручную перемещаю его, что не работает. Я также только что нашел этот связанный комментарий. Где мне найти соответствующие настройки?   -  person lucidbrot    schedule 03.09.2020
comment
Нашел. Я попробую   -  person lucidbrot    schedule 03.09.2020
comment
Вы можете настроить выходной каталог для его компиляции в это окончательное расположение (Проект - ›Параметры -› Delphi - ›Выходной каталог). Убедитесь, что вы проверили, что он оказывается там, где вы хотите, так как есть много мест, где можно оценить ценность, а некоторые, похоже, не работают.   -  person Brian    schedule 03.09.2020
comment
@Brian, твой второй комментарий сделал свое дело! Спасибо. Событие после сборки, которое я установил после вашего первоначального комментария, только скопировал какой-то другой файл или дал ему неправильное окончание, поэтому я решил сначала попробовать эту настройку Output Directory, и она работает. Если напишете как ответ, приму :)   -  person lucidbrot    schedule 03.09.2020


Ответы (1)


Под Project > Options > Building > Delphi Compiler есть опция Output directory. Установка этого пути для соответствующих конфигураций сборки в каталог подключаемого модуля AIMP дала результат, как было предложено @Brian в этот комментарий. Снимок экрана с параметрами проекта

person lucidbrot    schedule 04.09.2020