0 / 0 / 0
Регистрация: 28.06.2022
Сообщений: 19

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

30.07.2022, 13:40. Показов 6211. Ответов 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
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
13.08.2022, 11:06
Студворк — интернет-сервис помощи студентам
Verevkin, мне кажется, что нормальный секундомер должен синхронизироваться с порядочными атомными часами перед тем, как от него запрашивают данные. Многопоточный он или вообще работает на гуанокоде, это все не важно. Кварцевый резонатор не очень надежен, остальное не имеет значения. Выруби инет и потом посмотри на системное время через месяц)
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
13.08.2022, 11:09
Цитата Сообщение от Royal_X Посмотреть сообщение
мне кажется
Когда кажется, знаешь чо делать надо?
Я же сказал:

0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
13.08.2022, 14:48
Verevkin, мне не нравится синтаксис языков, похожих на Delphi, Pascal. А вот с самим языком, как я уже говорил, вообще не знаком. Вообще, говорят, что программа написанная опытным программистом на Python будет быстрее работать программы на С++, написанной посредственным программистом. Не Delphi такой хороший язык, а вы просто очень опытны, раз говорите, что 20 лет на нем работаете.
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
13.08.2022, 16:36
Цитата Сообщение от Royal_X Посмотреть сообщение
Вообще, говорят, что программа написанная опытным программистом на Python будет быстрее работать программы на С++, написанной посредственным программистом.
Тебя обманули.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
13.08.2022, 16:51
Verevkin, конечно, я немного утрирую, но все же есть доля правды. Просто много нубов поразвелось, которые пишут гуанокоды на С++. А в целом, С++ разумеется быстрее других языков и даёт много возможностей по низкоуровневому управлению памятью.
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
13.08.2022, 16:59
Цитата Сообщение от Royal_X Посмотреть сообщение
С++ разумеется быстрее других языков
Повторяю: у нас в приоритете время РАЗРАБОТКИ.Оно стоит очень дорого, поэтому экономия времени щедро оплачивается. Моя зарплата примерно равна средней по региону, умноженной на 4.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
13.08.2022, 17:32
Verevkin, а что за регион? Или укажи сразу в $
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
Текстовый слайдер с нумерацией страниц и кроссбраузерность.
russiannick 18.07.2026
Один мой друг написал текстовый слайдер с нумерацией страниц. Сегодня я расскажу как он умудрился подружить его с кроссбраузерностью. Очевидно сложно угодить с шириной каждому браузеру. Один крадет. . .
Грибы - это мемы, дерево - это человек. Применение микоризной модели к теории меметики Докинза.
anaschu 18.07.2026
Меметический изоморфизм теории «всего»: Грибная сукцессия как модель эволюции идей Докинза Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а универсальную. . .
Грибы - это корпорации, деревья - это государства. Механизм массонского захвата власти
anaschu 18.07.2026
Макроэкономический изоморфизм теории «всего»: Грибная сукцессия как модель транснационального капитализма Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а. . .
Расчёт периметра прямоугольника по координатам вершин
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости. Решение: Создан документ со следующими. . .
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово. Решение: Создан документ с единственным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru