У меня есть отдельная Visual Studio решение с DLL, написанной на C. Я использую ее в другом решении; в консольном проекте C ++. При отладке консольного проекта я вхожу в функцию DLL.
Тем не менее, страница открывается, сообщая, что There is no source code available for the current location
с расположением стека вызовов MyConsole.exe!_tailMerge_MyLibrary_dll()
, Я использую отложенную загрузку DLL-файла в консольном проекте. Поскольку страница с исходным кодом не отображается, я проверяю окно вывода и нахожу символы, загруженные из строки DLL. Почему Visual Studio 2012 не может войти в этот код DLL?
У меня была такая же проблема, и следующее решило мое. Я установил «Тип отладчика» на «Смешанный» на странице свойств основного проекта. Мой основной проект — управляемый код, а .dll — нативный.
Это происходит при работе с внешними проектами, когда Visual Studio спрашивает вас, есть ли у вас код. Если вы отмените процесс, запрошенный файл будет добавлен в список в решении, и он помнит НЕ запрашивать файл снова.
Проверьте свои Solution Property Pages > Debug Source Files
, Во-первых, убедитесь, что ваш файл не находится в Не ищите эти исходные файлы: а затем убедитесь, что вы добавили расположение источников в Каталоги, содержащие исходный код. Это должно помочь решить проблему.