【问题标题】:Why would Visual Studio 2010 (Intellisense) stop generating an interface pointer?为什么 Visual Studio 2010 (Intellisense) 会停止生成接口指针?
【发布时间】:2015-03-10 01:09:24
【问题描述】:

我的工作代码实现了包装器和接口,如下所示:

public class wrapper : wrapperInterface {
    ...
}

Intellisense 正在生成一个 wrapperInterfacePtr,因此在 C++ 标头中我有一个有效的声明:

wrapper::wrapperInterfacePtr m_wrapper;

我一直在尝试添加一些委托功能,以便可以将 C++ 回调传递给 C#(我失败了),并且在自动生成的 wrapperInterfacePtr 周围的某个时间点变得未定义。即使在我将所有代码返回(看起来)为其原始状态之后,Intellisense 也不会生成 wrapperInterfacePtr。

对我可以做些什么或如何启动 Intellisense 有什么想法?

【问题讨论】:

  • "您是否尝试将其关闭再打开?"不完全是。尝试重启 VS 看看是否还有问题。
  • wrapperInterfacePtr 只是 typedef wrapperInterface* wrapperInterfacePtr 吗?它是在哪里生成的?
  • @Donnelle 不幸的是,今天早上重新启动并没有重置任何内容。我也充满希望!
  • @Dai 我似乎记得它是一个 typedef,但不是那么简单。例如,当我选择仍然存在的自动生成元素之一“_wrapperInterface”(注意下划线)时,鼠标悬停将元素显示为“typedef _com_ptr_t> wrapper_wrapperPtr .
  • 我越来越相信这是一个智能感知/重置问题,因为仍然自动生成的项目之一是“cbDelegate”。那是现在被注释掉的代表的名字。我在重建之前进行了清理,我还能做些什么来“刷新项目缓存”吗?

标签: c# c++ visual-studio-2010


【解决方案1】:

好的,我让它再次工作。我无法给出失败的确切原因,但我有一个想法。新的 C# 托管代码位于现有 C++ 非托管代码的庞大库之上。我使用 VS 构建托管代码,然后使用内部工具构建其他所有内容。内部构建工具不会做干净,除非你真的,真的强迫这个问题。 (这需要几天时间。)当我对与托管代码接口的 dll 进行构建清理时,问题就解决了。

【讨论】:

  • 很高兴你把它整理好了。这类事情可能会令人沮丧!
猜你喜欢
  • 2011-04-21
  • 2011-11-19
  • 1970-01-01
  • 2016-02-07
  • 1970-01-01
  • 1970-01-01
  • 2015-03-22
  • 2022-08-07
  • 2011-07-20
相关资源
最近更新 更多