我想列出c ++类中的属性和函数。该功能是否已在任何库中实现? visual studio intellisense是否使用任何库?该库是否可以从Microsoft公开获取?
答案 0 :(得分:8)
Visual Studio会解析您的代码,这就是它所知道的。你需要做同样的事情。
答案 1 :(得分:5)
他们使用适当的格式存储智能感知信息(它们保存为NCB文件)。如果出现问题,您可以删除这些文件以强制VS重新创建其智能感知数据库。
然后他们扫描头文件以获取类信息以及依赖关系,然后构建NCB文件以供将来参考。
不,此库不可供个人使用。
C#中的Intellisense比C ++中的Intellisense要好很多 VS2010将看到C ++具有与C#目前相同的智能感知功能。
答案 2 :(得分:5)
Visual C++ team maintains a blog有几篇关于IntelliSense过去如何运作以及未来如何运作的非常好的文章:
基本上,他们通过解析标题和其他源文件 - 使用自定义解析器和解析它们来构建他们自己的'反射'数据库(当前和过去的版本VS VS中的.ncb文件,使用从VS2010开始的紧凑型SQL数据库)。完成了编译器的合作。
显然,至少有一些信息可以在VCCodeModel和Visual Studio可扩展性模型提供的相关接口中找到。我不知道可扩展性模型的工作原理或使用起来有多容易。
答案 3 :(得分:0)
我认为Visual Studio使用头文件来提供Intellisense。