为啥 Visual Studio 2010 (Intellisense) 会停止生成接口指针?

Posted

技术标签:

【中文标题】为啥 Visual Studio 2010 (Intellisense) 会停止生成接口指针?【英文标题】: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”。那是现在被注释掉的代表的名字。我在重建之前进行了清理,我还能做些什么来“刷新项目缓存”吗? 【参考方案1】:

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

【讨论】:

很高兴你把它整理好了。这类事情可能会令人沮丧!

以上是关于为啥 Visual Studio 2010 (Intellisense) 会停止生成接口指针?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的visual stdio 2010连错误程序也能编译成功。。。。

为啥以下无法在 Visual Studio 2010 C++ 下编译?

为啥 Visual Studio 2010 在 VMware 中出现渲染问题?

为啥 Visual Studio 2010 不“解包”系统变量?

为啥 stoi 函数在 Visual Studio 2010 中可用

为啥 Visual Studio 2010 使用源代码发布网站?