Отладка проекта Visual Studio 2010 DLL - PullRequest
0 голосов
/ 07 сентября 2010

Я пытаюсь отладить собственный C / C ++ проект DLL из Visual Studio 2010. Я пытаюсь следовать следующим инструкциям: http://msdn.microsoft.com/en-us/library/c91k1xcf(v=VS.100).aspx

Я хочу использовать встроенный отладчик и бытьвозможность пошагового кода, изучения структур и т. д., как я делал бы с обычным .exe-проектом.Инструкции на странице выше описывают категорию Отладка в Свойства конфигурации , которую я не вижу.

http://img707.imageshack.us/img707/4402/lalasz.png

Просто нажмите F5 дляОтладка приводит к следующей ошибке:

Невозможно запустить программу 'C: \ Users ....... Test.dll'

Я использовалОтладчик для обычных .exe проектов много раз, и он отлично работает на этом компьютере.Хотя я не уверен, что мне сейчас не хватает чего-то очень очевидного.

Редактировать: Поскольку я не давал понять с самого начала, я хочу, чтобы Visual Studio загрузил библиотеку DLL в процесс-заглушку.и позвольте мне отлаживать на исходном уровне оттуда, очень похоже на то, как это делает OllyDbg.

Моя DLL - это не тот тип, который содержит набор функций, которые нужно экспортировать и вызывать.Вместо этого он выполняет переключение / регистр в DllMain, а в DLL_PROCESS_ATTACH будет создан новый поток.Поэтому все, что мне нужно для Visual Studio, это загрузить мою DLL в исполняемый файл-заглушку и позволить мне устанавливать точки останова и т. Д.

Ответы [ 4 ]

3 голосов
/ 07 сентября 2010

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

"Если вы начинаете отладку из проекта, который создает DLL, вы должны указать исполняемый файл, который вы хотите использовать при отладке DLL."

3 голосов
/ 07 сентября 2010

Вы, вероятно, имеете в качестве проекта запуска тот, который производит DLL.

У вас есть два варианта: либо изменить стартовый проект на другой проект, который создает исполняемый файл, использующий эту DLL, либо настроить в свойствах проекта параметры отладки для проекта dll для запуска внешнего приложения, использующего эту dllСвойства проекта / Отладка / Команда).

1 голос
/ 07 сентября 2010

Вы щелкнули правой кнопкой мыши имя решения в окне обозревателя решений и получили свойства решения.Обратите внимание, что в окне отображается «Страница свойств решения теста».

Вместо этого щелкните правой кнопкой мыши имя проекта (выделите жирным шрифтом), чтобы установить параметры проекта.

0 голосов
/ 07 сентября 2010

Вы также столкнулись бы с этой проблемой из управляемого проекта. Visual Studio говорит вам, что она не может запустить DLL, точно так же, как вы не можете дважды щелкнуть по DLL из Explorer и запустить программу.

Для отладки DLL напишите небольшое консольное приложение, которое вызывает функции из вашей DLL и выполняет ваш код. Если в вашей DLL есть функция foo(), вызовите foo() из main в консольном приложении. Установите консольное приложение в качестве проекта «Автозагрузка», щелкнув правой кнопкой мыши имя проекта в обозревателе решений и выбрав его параметр.

Затем, когда вы нажмете F5, вы запустите консольное приложение, которое вызовет DLL.

...