Visual Studio Перейти к определению - PullRequest
4 голосов
/ 09 октября 2009

Перейти к определению в Visual Studio 2005 работает только для файлов, которые находятся в моем проекте. Это никогда не работает для файлов, которые включены во внешние библиотеки, такие как mfc. Когда я говорю «Перейти к определению» для функции mfc, он всегда показывает мне заголовочный файл. Это ожидаемое поведение? А также, как все это работает. Спасибо

Ответы [ 6 ]

2 голосов
/ 09 октября 2009

Я бы сделал небольшие инвестиции, необходимые для Visual Assist . Помимо всех замечательных функций, которые он предлагает, он имеет команду Alt + G, которая работает намного лучше, чем Visual Studio:)

1 голос
/ 09 октября 2009

Для исходных файлов MFC (по крайней мере, пакетов Feature Pack) я узнал, в какой папке они находятся (обычно в C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\src\mfc), и добавил эту папку в диалог поиска в файлах.

Это не так прямо, как Перейти к определению, и вам, возможно, придется просмотреть результаты поиска, но это работает ...

Примечание: я второй @ flippy ответ Visual Assist, это действительно здорово.

1 голос
/ 09 октября 2009

Внешние библиотеки являются ссылками на их скомпилированные библиотеки DLL, а не источником при ссылке на ваши собственные проекты.

Идея состоит в том, что вам не нужно ничего, кроме интерфейса с внешними классами, , но, если вы хотите увидеть внутреннюю часть DLL, вы можете использовать такой инструмент, как Reflector .

0 голосов
/ 09 октября 2009

Да, это ожидаемое поведение. На вашем боксе доступны только объявления (файлы заголовков) кода MFC, и, следовательно, это единственное место, куда он может вас доставить.

Что вы ожидаете увидеть?

0 голосов
/ 09 октября 2009

Хорошо, если вы подумаете об этом логически, поскольку Visual Studio знает, что единственное доступное определение объекта MFC - это определение, которое он видит в связанном заголовочном файле MFC, поэтому, если у вас фактически нет полного источника для MFC, это не смогу нигде искать.

То, как работает intellisense / go для определения, - это файл, который создается при компиляции приложения. Он хранит отображение между переменными / функциями и местом их объявления (или потенциально может быть объявлено в полиморфных ситуациях), и когда вы щелкаете правой кнопкой мыши, чтобы сказать «перейти к определению», он ссылается на этот файл.

0 голосов
/ 09 октября 2009

Да, в заголовочном файле будут даны только интерфейсы для MFC. Если он не реализован с шаблоном, вы не сможете получить доступ к фактическому определению. В dll есть реализация для этих интерфейсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...