Visual Studio转到定义

时间:2009-10-09 13:22:12

标签: visual-studio visual-studio-2005

Go to Visual Studio 2005中的定义仅适用于我项目中的文件。它永远不适用于像mfc这样的外部库中包含的文件。当我说mfc函数的Go To Definition时,它总是显示头文件。这是预期的行为吗? 此外,Go To Definition的工作原理如何? 感谢

6 个答案:

答案 0 :(得分:2)

我需要在Visual Assist中进行小额投资。除了它提供的所有强大功能外,它还具有Alt + G命令,其工作方式比Visual Studio更好地定义:)

答案 1 :(得分:1)

外部库是引用其编译的DLL而不是引用您自己的项目时的源。

这个想法是你不需要外部类的接口,但是,如果你想看到DLL的内部,你可以使用Reflector等工具。 /德尔>

答案 2 :(得分:1)

对于MFC源文件(至少是Feature Pack文件),我学会了找出它们所在的文件夹(通常是C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\src\mfc)并将该文件夹添加到“在文件中查找”对话框中。

它不像Go to Definition那样直接,你可能需要在搜索结果中浏览,但它有效......

注意:我是第二个@flippy的Visual Assist答案,它真的很棒。

答案 3 :(得分:0)

是的,只有MFC的接口将在头文件中给出。除非用Template实现,否则你将无法访问实际定义.dll有这些接口的实现。

答案 4 :(得分:0)

好吧,如果你从逻辑上考虑它,只要visual studio知道可用的MFC对象的唯一定义是它在相关的MFC头文件中看到的定义,所以除非你实际拥有MFC的整个源它将无法在其他任何地方寻找。

intellisense /去定义的工作方式是通过编译应用程序时创建的文件。它存储变量/函数之间的映射以及声明它们的位置(或者可能在多态情况下声明),当您右键单击说“转到定义”时它会引用该文件。

答案 5 :(得分:0)

是的,这是预期的行为。只有您的盒子上有MFC代码的声明(头文件),因此这是它可以带您去的唯一位置。

你期待它展示什么?