Я знаю, я знаю, эта проблема решалась много раз. «Просто объявите ваш класс перед любыми другими предварительными объявлениями, и это сработает».
Я вновь открываю этот вопрос, потому что для меня это не работает вообще. У меня Visual Studio 2012 обновление 1. Я разрабатываю на C ++ / CLI в x64 на Win 7 / x64. Вот как выглядит мой заголовочный файл:
#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, Я убрал проект, а также Я восстановил это.
Примечание. Я попытался удалить предварительное объявление и вместо него добавить #include «MyForwardDeclaredClass.h». Я получил ту же ошибку.
Мы недавно мигрировали с VS2005 на VS2012. С VS2005 дизайнерское использование было так себе. Но это работало большую часть времени. Сейчас большую часть времени я не могу заставить это работать, и я не нахожу никакого обходного пути.
Любая идея?
РЕДАКТИРОВАТЬ
Хорошо, следуя советам, которые мне дали, я удалил файлы .suo и .sdf, затем перегрузил решение и перестроил его. Ничего хорошего. Я воссоздаю новый проект, используя те же файлы кода: ничего хорошего. И да, У меня есть .cpp файлы в моем проекте 😉
Решение было довольно простым: мне пришлось сбросить настройки по умолчанию в Инструменты-Параметры-Текстовый редактор-C / C ++ / Advanced, раздел Просмотр / Навигация.
Если однажды у вас возникла такая же проблема, просто попробуйте восстановить значения по умолчанию для этих параметров.
Других решений пока нет …