【问题标题】:Function Prototype inside struct - Intellisense cannot find结构内的函数原型 - Intellisense 找不到
【发布时间】:2016-05-09 16:15:28
【问题描述】:

我正在尝试将我的一个项目从 Visual Studio 2012 切换到 Visual Studio 2015 Community。不幸的是,intellisense 不再能在结构中找到函数原型,因此这些函数没有自动完成功能。

我的结构如下所示:

#ifdef SHOW_STRUCT
struct System
#else
struct SYSTEM
#endif
{
    /// <summary>
    /// blabla
    /// </summary>
    void Reset(void); 

} System;

SHOW_STRUCT 没有定义(我需要这种特殊的结构来兼容 doxygen 和 Visual Studio 2008)。

当我想使用函数System.Reset() 时,智能感知在输入System. 后说没有可用的成员。找到结构体内部的变量。

有什么想法吗?

【问题讨论】:

  • 无法重现问题。
  • 也许我的视觉工作室中有一个设置错误,有什么想法吗?
  • 您可以尝试退出 VS,然后删除解决方案的代码浏览器数据库文件。它是解决方案文件夹中的大 *.sdf 文件。它将在下次 VS 加载您的解决方案时重建。
  • 我试过了,也没有运气。还是同样的问题。

标签: c++ intellisense visual-studio-2015


【解决方案1】:

如果您只是键入 System.Reset,智能感知可能找不到它,因为 Reset 不是 System.Reset 的静态函数。在我看来,您要么需要一个 System 实例才能让智能感知开始提供成员函数,要么将 Reset 声明为静态。

【讨论】:

  • 我尝试了你建议的两种修复方法,不幸的是没有一个有效。还是一样的信息。
  • 一开始我也是这么想的,但是注意sn-p最后一行的System。不管是否定义了 SHOW_STRUCT,这里都定义了一个名为System 的实例。
【解决方案2】:

我刚刚找到了解决方案。我使用 *.c 文件。但是我想要的功能只在 C++ 中得到支持。所以将项目切换到 C++ 解决了这个问题。

【讨论】:

    猜你喜欢
    • 2014-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 2013-04-22
    • 1970-01-01
    相关资源
    最近更新 更多