Вы говорите: «Я пытался запустить программу как внешнюю программу отладки C ++ DLL ... Но я думаю, что эти параметры могут быть проигнорированы, так как я не могу запустить exe в отладчике ...».Я думаю, что это может быть то, где вы идете не так.
Вам нужно установить проект C ++ DLL в качестве запускаемого проекта (щелкните проект правой кнопкой мыши и выберите Set as StartUp Project).Затем откройте страницы свойств для проекта и в разделе «Отладка» в поле «Команда» введите полный путь к исполняемому файлу приложения.Введите любые аргументы командной строки, необходимые в поле Command Arguments.Также убедитесь, что ваш проект DLL генерирует PDB в C ++ / General.Очистите и перестройте проект DLL.
Установите точку останова в функции, которую вы ожидаете вызвать - в идеале, где-то рядом с точкой входа, и еще одну точку останова в коде, который вы хотите отладить.Теперь начните отладку (F5).Приложение должно запуститься (точки останова, вероятно, будут выглядеть «выдолбленными» с сообщением о том, что точка останова не привязана или похожая - пока не беспокойтесь об этом).Выполните все действия, необходимые в приложении для вызова собственной библиотеки DLL.Когда DLL и ее PDB загружены, точки останова должны выглядеть непрозрачными и будут поражены при выполнении строки кода.
Если точка останова не достигнута / не привязана, я бы предложил скопироватьC ++ DLL и его PDB в исполняемую папку приложения, чтобы уменьшить вероятность загрузки неправильной DLL.Затем перезапустите отладчик.Если ваше приложение программно устанавливает рабочую папку, попробуйте скопировать также DLL / PDB в это место.
Если это не удастся, это может быть связано с тем, что вызывающий объект выбирает конфигурацию, несовместимую с вызываемым пользователем.В общем случае не рекомендуется смешивать код режима отладки и выпуска, особенно при сортировке данных.Перестройте библиотеку DLL в режиме выпуска, включая PDB, и выполните приведенные выше инструкции.Все еще возможно отладить код режима релиза, хотя иногда это бывает сложно из-за оптимизаций.