Visual Studio Designer在VS2012中不适用于C++/CLI文件,而在VS2005中则不起作用。知道为什么吗?



我知道,我知道,这个问题已经被讨论过很多次了。只要在其他前向声明之前前向声明你的类就可以了

我重新打开这个问题,因为对我来说它根本不起作用。我有Visual Studio 2012更新1。我在win7/x64的x64上使用c++/CLI进行开发。下面是我的头文件的样子:

#pragma once
namespace MyNameSpace
{
    ref class MyForwardDeclaredClass;
    public ref class MyClass : public System::Windows::Forms::UserControl
    {
    public:
        // My declaration here
        MyForwardDeclaredClass^ mObjectPtr;
    }
}

当我启动设计时,我得到消息类MyClass可以设计,但不是文件中的第一个类。Visual Studio要求设计人员使用文件中的第一个类。

因此,根据许多人的建议(这些建议似乎对许多人都有效),我添加了这一行:
ref class MyClass; // <-- ADDED FORWARD DECLARATION HERE!
ref class MyForwardDeclaredClass;
public ref class MyClass : public System::Windows::Forms::UserControl
{
    // ...

仍然得到相同的错误消息。注意,我也重新启动了Visual Studio我清理了项目,并且我重新构建了它

注意:我试图删除forward声明,并添加一个#include "MyForwardDeclaredClass.h"代替。我得到了相同的错误。

我们最近从VS2005迁移到VS2012。在VS2005中,设计器的使用一般。但大多数时候都是有效的。现在,大多数时候我不能让它工作,我找不到任何解决办法。

任何想法?

编辑

好的,按照我给出的建议,我删除了。so和。sdf文件,然后重新加载解决方案,然后重建它。没有什么好。我使用相同的代码文件重新创建了一个新项目:没什么好东西。是的,我的项目中有。cpp文件;-)

解决方案很简单:我必须重置工具-选项-文本编辑器-C/c++/高级浏览/导航部分中的默认选项。

如果有一天您遇到同样的问题,请尝试恢复这些选项的默认值

最新更新