Рейтинг:
0
Rick York
Вы должны предоставить им отладочную версию вашего исполняемого файла, потому что MFC не может смешивать модули режима отладки и выпуска. Однако вам не нужно предоставлять им свой исходный код, и я не уверен, Нужно ли вам предоставлять им файл символов, файл .pdb. Они должны сделать отладочную сборку и указать команду, Аргументы и рабочий каталог в разделе отладки свойств конфигурации, после чего они могут установить точки останова в методах интерфейса и отладить свою библиотеку.
Вы можете проверить это сами, создав небольшую скелетную библиотеку со всеми необходимыми методами интерфейса, и посмотреть, работает ли она. Это должно быть довольно просто. Вам придется поэкспериментировать, чтобы увидеть, что нужно библиотеке расширений от вашего приложения с точки зрения файлов.pdb и тому подобного.
SheepSpeech
Привет,
Я думаю, что это то, что я сделал (я что-то забыл? Может быть, это файлы. pdb, но я не был явно заблокирован без него).
Проблема больше в следующем: мое приложение загружает плагины из своего каталога "плагины", а затем пользователь может выбрать один из них и запустить его. Поэтому только прикрепление моего расширения к приложению не позволяет мне видеть плагин в моем приложении. Более того, делая это таким образом, мое приложение не загружает ни одного плагина (обычно оно загружает все плагины, доступные в его каталоге "Плагины").
Rick York
Я признаю, что это может быть сложно, но я сам делал именно это в прошлом, поэтому я знаю, что это возможно. Отлаживать библиотеки DLL можно двумя способами. Один из них-установить точку останова в вашем коде, где вы вызываете функции из библиотеки DLL, а затем переходите в код, который она вызывает. Второй - установить точку останова внутри функций библиотеки DLL, а затем запустить программу до тех пор, пока не будет достигнута одна из этих точек останова. В любом случае это довольно просто. Попробуйте один или оба и посмотрите, что получится.
SheepSpeech
Вы пробовали это сделать без исходного кода основного приложения? Спасибо.
Rick York
Насколько я помню, нет. - А ты? Это быстро и легко сделать. Я описал, как раньше.
SheepSpeech
Вот что я понимаю:
"Один из них устанавливает точку останова в вашем коде, где вы вызываете функции из библиотеки DLL, а затем входите в код, который она вызывает." Для этого вам нужен исходный код основного приложения.
"Второе-это установить точку останова внутри функции в DLL и затем запустить программу, Пока один из тех, точки останова не ударил".Вы должны быть в состоянии запустить debugguer из DLL, для этого вы должны приложить DLL в приложение, но как мне объяснили приложение не запустить его в этом случае, потому что это не в его директорию плагинов. Если вы тоже поставите свое .dll в своем каталоге плагинов и выбрать, чтобы запустить его из приложения, точки останова игнорируются.
Rick York
К сожалению, я не в состоянии написать программу для проверки этого. Однако я немного поискал и нашел несколько статей на эту тему. Я искал здесь слова "plug-in framework" и нашел довольно много статей. Я рекомендую взять один из них и проверить, что вы пытаетесь сделать, и посмотреть, что получится. Я часто нахожу, что тестирование в минимально возможной среде может быть очень полезным, поскольку оно имеет тенденцию минимизировать побочные эффекты.