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

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

30.07.2022, 13:40. Показов 6195. Ответов 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
6284 / 3008 / 1051
Регистрация: 01.06.2021
Сообщений: 11,269
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
6284 / 3008 / 1051
Регистрация: 01.06.2021
Сообщений: 11,269
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
6284 / 3008 / 1051
Регистрация: 01.06.2021
Сообщений: 11,269
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
6284 / 3008 / 1051
Регистрация: 01.06.2021
Сообщений: 11,269
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
Ответ Создать тему
Новые блоги и статьи
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru