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

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

30.07.2022, 13:40. Показов 6016. Ответов 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
6234 / 2941 / 1047
Регистрация: 01.06.2021
Сообщений: 10,923
13.08.2022, 11:06
Студворк — интернет-сервис помощи студентам
Verevkin, мне кажется, что нормальный секундомер должен синхронизироваться с порядочными атомными часами перед тем, как от него запрашивают данные. Многопоточный он или вообще работает на гуанокоде, это все не важно. Кварцевый резонатор не очень надежен, остальное не имеет значения. Выруби инет и потом посмотри на системное время через месяц)
0
Злостный нарушитель
 Аватар для Verevkin
10637 / 5788 / 1277
Регистрация: 12.03.2015
Сообщений: 26,725
13.08.2022, 11:09
Цитата Сообщение от Royal_X Посмотреть сообщение
мне кажется
Когда кажется, знаешь чо делать надо?
Я же сказал:

0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6234 / 2941 / 1047
Регистрация: 01.06.2021
Сообщений: 10,923
13.08.2022, 14:48
Verevkin, мне не нравится синтаксис языков, похожих на Delphi, Pascal. А вот с самим языком, как я уже говорил, вообще не знаком. Вообще, говорят, что программа написанная опытным программистом на Python будет быстрее работать программы на С++, написанной посредственным программистом. Не Delphi такой хороший язык, а вы просто очень опытны, раз говорите, что 20 лет на нем работаете.
0
Злостный нарушитель
 Аватар для Verevkin
10637 / 5788 / 1277
Регистрация: 12.03.2015
Сообщений: 26,725
13.08.2022, 16:36
Цитата Сообщение от Royal_X Посмотреть сообщение
Вообще, говорят, что программа написанная опытным программистом на Python будет быстрее работать программы на С++, написанной посредственным программистом.
Тебя обманули.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6234 / 2941 / 1047
Регистрация: 01.06.2021
Сообщений: 10,923
13.08.2022, 16:51
Verevkin, конечно, я немного утрирую, но все же есть доля правды. Просто много нубов поразвелось, которые пишут гуанокоды на С++. А в целом, С++ разумеется быстрее других языков и даёт много возможностей по низкоуровневому управлению памятью.
0
Злостный нарушитель
 Аватар для Verevkin
10637 / 5788 / 1277
Регистрация: 12.03.2015
Сообщений: 26,725
13.08.2022, 16:59
Цитата Сообщение от Royal_X Посмотреть сообщение
С++ разумеется быстрее других языков
Повторяю: у нас в приоритете время РАЗРАБОТКИ.Оно стоит очень дорого, поэтому экономия времени щедро оплачивается. Моя зарплата примерно равна средней по региону, умноженной на 4.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6234 / 2941 / 1047
Регистрация: 01.06.2021
Сообщений: 10,923
13.08.2022, 17:32
Verevkin, а что за регион? Или укажи сразу в $
0
Злостный нарушитель
 Аватар для Verevkin
10637 / 5788 / 1277
Регистрация: 12.03.2015
Сообщений: 26,725
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
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru