C++ и CLR- проект: куда писать мой код?

KZaripova

Здравствуйте.У меня вопрос совсем для начинающих.Расскажу коротко. Я училась в таможенной академии. У нас были занятия, на которых мы учили с и с++ (си с классами) И даже части стандартной библиотеки - то, что связано с файлами и сокетами.И вот я получила первую настоящую работу. Моя задача состоит в разработке нескольких форм, которые отображают данные и заносят их в базу. Разработка идёт на Visual Studio 2015. Я захотела применить знания по C++. Какой тип проекта создавать - я разобралась. Правда, использование C++ для разработки не рекомендуется microsoft, но я прочитала такую статью http://mvblog.ru/archives/861/ где всё объяснено простым языком.Мне визард генерирует два файла - "*.h" файл, в котором написана ВСЯ требуха - создание компонентов, их размещение на форме и так далее. Теперь мне надо "оживить" форму - сделать, чтобы при редактировании - она заполнялась данными из базы, при переключении одних полей другие разрешались или запрещались, и была реакция на события.По логике я бы написала эту часть как раз в *.cpp файле.Но тут возникает трудность: частичных классов в C++ нет. (partial class)То есть, если у меня *.h файл выглядит как
namespace Project1 {
    public ref class MyForm : public System::Windows::Forms::Form {
 
        ... - код , который что то делает
    }
}
то я не могу написать ЧАСТЬ функций класса MyForm в *.cpp - файле. Возникает вопрос - куда писать мой код? ведь в *.h файле написано в самом начале "Windows Form Designer generated code Required method for Designer support - do not modify the contents of this method with the code editor."Спасибо всем за помощь!Кажется, ответ нашелся здесь: Ответы на 7 самых частых вопросов по Windows Forms, C++/CLI EditionТам можно скачать проект под названием "WindowsForms_2_4.zip" И там есть пример, когда в *.h написано что то вроде
private:
  void button1_Click(Object^ sender, EventArgs^ e);
а сама эта функция находится в *.cpp файле. Правда, не в классе, а просто в неймспейсе
1 ответ

KZaripova

Кажется, ответ нашелся здесь: Ответы на 7 самых частых вопросов по Windows Forms, C++/CLI Edition Там можно скачать проект под названием "WindowsForms_2_4.zip" И там есть пример, когда в *.h написано что то вроде
private:
 void button1_Click(Object^ sender, EventArgs^ e);
а сама эта функция находится в *.cpp файле. Правда, не в классе, а просто в неймспейсе
Это, на всякий случай, стандартный подход в C++. В *.h файле делаются только объявление, а в *.cpp файле реализация.
ведь в *.h файле написано в самом начале "Windows Form Designer generated code Required method for Designer support - do not modify the contents of this method with the code editor."
Этот комментарий относится только к части кода h файла.
Возникает вопрос - куда писать мой код?
Простые обработчики вполне можно разместить и в h файле. Хотя это некрасиво с точки зрения принятой в С++ организации кода. Беда в том что MS не допилила визуальный дизайнер для C++/CLI и он размещает весь код в h файле Причем если вынести код в cpp - как полагается - то дизайнер не будет их видеть. Код при этом работает корректно.