Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/26: Рейтинг темы: голосов - 26, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 28.06.2022
Сообщений: 19

Пытаюсь разобраться с clr

30.07.2022, 13:40. Показов 6320. Ответов 27

Студворк — интернет-сервис помощи студентам
Здравствуйте, я первый раз работаю в clr и мне как то тяжело.
Дело в том, что я никогда не работал до этого с header файлами, так как не было необходимости. А при создании clr проекта создаются и cpp, и h файлы.
Задача следующая: я создаю некую программу работы с файлом, состоящую из нескольких окон. В первом окне всего две кнопки: "начать" (открыть следующую форму) и "закрыть приложение".
Мне надо правильно создать следующую структуру:
C++
1
2
3
4
5
typedef struct zap {
        string town;
        string nas;
        string year;
    } zap;
Я ее вроде объявляю в h файле, но когда создаю переменную этой структуры, то выдает ошибку "Член класса управляемый не может относиться к типу класса не управляемый". Так же и с созданием файла и формы. То есть, я прошу вас показать мне, как исправить эту ошибку и написать грамотный код с этим: ( весь код формы в конце )
C++
1
2
3
4
5
6
7
8
typedef struct zap {
        string town;
        string nas;
        string year;
    } zap;
Form form;
zap rec;
fstream f;
И второе, что я хотел спросить. Как мне обратиться к второй форме внутри h файла первой формы? Я создаю в h файле второй формы ее экземпляр:
C++
1
Form form1;
Потом я подключаю h файл второй формы и к первой и пишу это:
C++
1
form1.Show();
Но мне пишет, что form1 не определен! Как его определить?

Код первой формы ( h файл, в cpp ничего нет, кроме стандартного кода для работы с crl):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#pragma once
#include <string>
#include <fstream>
#include "MyForm1.h"
 
using namespace std;
 
zap rec;
fstream f;
 
namespace pr {
 
    typedef struct zap {
        string town;
        string nas;
        string year;
    } zap;
 
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
 
    /// <summary>
    /// Сводка для MyForm
    /// </summary>
    public ref class MyForm : public System::Windows::Forms::Form
    {
    public:
        MyForm(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~MyForm()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::Button^  button1;
    private: System::Windows::Forms::Button^  button2;
    protected:
 
    private:
 
        /// <summary>
        /// Обязательная переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Требуемый метод для поддержки конструктора — не изменяйте 
        /// содержимое этого метода с помощью редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->button2 = (gcnew System::Windows::Forms::Button());
            this->SuspendLayout();
            // 
            // button1
            // 
            this->button1->Location = System::Drawing::Point(80, 36);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(116, 53);
            this->button1->TabIndex = 0;
            this->button1->Text = L"Начать";
            this->button1->UseVisualStyleBackColor = true;
            this->button1->Click += gcnew System::EventHandler(this, &MyForm::button1_Click);
            // 
            // button2
            // 
            this->button2->Location = System::Drawing::Point(80, 144);
            this->button2->Name = L"button2";
            this->button2->Size = System::Drawing::Size(116, 51);
            this->button2->TabIndex = 1;
            this->button2->Text = L"Закрыть приложение";
            this->button2->UseVisualStyleBackColor = true;
            this->button2->Click += gcnew System::EventHandler(this, &MyForm::button2_Click);
            // 
            // MyForm
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(284, 261);
            this->Controls->Add(this->button2);
            this->Controls->Add(this->button1);
            this->Name = L"MyForm";
            this->Text = L"Начальная страница";
            this->Load += gcnew System::EventHandler(this, &MyForm::MyForm_Load);
            this->ResumeLayout(false);
 
        }
        Form form;
#pragma endregion
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
            form1.Show();
            form.Hide();
            system("PAUSE");
            f.open("goroda.txt");
        }
    private: System::Void MyForm_Load(System::Object^  sender, System::EventArgs^  e) {
        }
    private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
            Application::Exit();
        }
    };
    
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.07.2022, 13:40
Ответы с готовыми решениями:

Пытаюсь разобраться с динамическим массивом
Недавно начал изучать С++, подскажите как сделать полностью динамический массив #include &lt;iostream&gt; #include &lt;time.h&gt; ...

Пытаюсь разобраться в чужом коде (переписать строку с С++17 или С++20 на С++11)
Привет всем. Решил собрать себе кросс-ассемблер pasmo-0.5.5 (https://pasmo.speccy.org) для побаловаться с z80. при сборке выскочило...

Задача по конструкторам и деструкторам и классам , пытаюсь разобраться и было бы здорово если кто то бы объяснил
Учитывается класс Дисциплина, содержащий закрытые члены: название, учитель, количество часов, количество кредитов и public члены:...

27
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
13.08.2022, 11:06
Студворк — интернет-сервис помощи студентам
Verevkin, мне кажется, что нормальный секундомер должен синхронизироваться с порядочными атомными часами перед тем, как от него запрашивают данные. Многопоточный он или вообще работает на гуанокоде, это все не важно. Кварцевый резонатор не очень надежен, остальное не имеет значения. Выруби инет и потом посмотри на системное время через месяц)
0
Нарушитель
10899 / 5833 / 1289
Регистрация: 12.03.2015
Сообщений: 26,921
13.08.2022, 11:09
Цитата Сообщение от Royal_X Посмотреть сообщение
мне кажется
Когда кажется, знаешь чо делать надо?
Я же сказал:

0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
13.08.2022, 14:48
Verevkin, мне не нравится синтаксис языков, похожих на Delphi, Pascal. А вот с самим языком, как я уже говорил, вообще не знаком. Вообще, говорят, что программа написанная опытным программистом на Python будет быстрее работать программы на С++, написанной посредственным программистом. Не Delphi такой хороший язык, а вы просто очень опытны, раз говорите, что 20 лет на нем работаете.
0
Нарушитель
10899 / 5833 / 1289
Регистрация: 12.03.2015
Сообщений: 26,921
13.08.2022, 16:36
Цитата Сообщение от Royal_X Посмотреть сообщение
Вообще, говорят, что программа написанная опытным программистом на Python будет быстрее работать программы на С++, написанной посредственным программистом.
Тебя обманули.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
13.08.2022, 16:51
Verevkin, конечно, я немного утрирую, но все же есть доля правды. Просто много нубов поразвелось, которые пишут гуанокоды на С++. А в целом, С++ разумеется быстрее других языков и даёт много возможностей по низкоуровневому управлению памятью.
0
Нарушитель
10899 / 5833 / 1289
Регистрация: 12.03.2015
Сообщений: 26,921
13.08.2022, 16:59
Цитата Сообщение от Royal_X Посмотреть сообщение
С++ разумеется быстрее других языков
Повторяю: у нас в приоритете время РАЗРАБОТКИ.Оно стоит очень дорого, поэтому экономия времени щедро оплачивается. Моя зарплата примерно равна средней по региону, умноженной на 4.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
13.08.2022, 17:32
Verevkin, а что за регион? Или укажи сразу в $
0
Нарушитель
10899 / 5833 / 1289
Регистрация: 12.03.2015
Сообщений: 26,921
13.08.2022, 20:13
Цитата Сообщение от Royal_X Посмотреть сообщение
а что за регион?
Город Рязань.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.08.2022, 20:13

Пытаюсь разобраться с тем, что можно, а что нельзя в C++
По заданию необходимо: 1) в каждый класс (В1, В2, D) добавить:  конструктор с инициализацией;  деструктор;  функцию вывода всех...

Пытаюсь разобраться в исходниках ClamAV.
Пытаюсь скомпилировать clamscan в Borland Builder C++ 2006 Ошибка появляется на строки в fmap.h : HANDLE fh; Ошибки: fmap.h(44):...

DLL Class Library и /clr, /clr:pure, /clr:safe & etc...
Всем привет! Собираю библиотеку в Visual C++ 2008, в свойствах проекта выбираю поддержку CLR - &quot;Поддержка CLR &quot; - компилирую...

Пытаюсь разобраться...
Insert into переменную? есть код stmt = connection.createStatement(); rs = stmt.executeQuery(&quot;SELECT * from biznes&quot;); ...

Пытаюсь разобраться в задании
Помогите пожалуйста разобраться в задании лабораторной работы: Текст лаб.раб. №2 следующий: Как я понимаю, во 2-й...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru