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

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте, я первый раз работаю в 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...

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

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

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

27
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
4323 / 2192 / 966
Регистрация: 01.06.2021
Сообщений: 7,546
13.08.2022, 11:06 21
Author24 — интернет-сервис помощи студентам
Verevkin, мне кажется, что нормальный секундомер должен синхронизироваться с порядочными атомными часами перед тем, как от него запрашивают данные. Многопоточный он или вообще работает на гуанокоде, это все не важно. Кварцевый резонатор не очень надежен, остальное не имеет значения. Выруби инет и потом посмотри на системное время через месяц)
0
Злостный нарушитель
 Аватар для Verevkin
9698 / 5257 / 1199
Регистрация: 12.03.2015
Сообщений: 24,776
13.08.2022, 11:09 22
Цитата Сообщение от Royal_X Посмотреть сообщение
мне кажется
Когда кажется, знаешь чо делать надо?
Я же сказал:

Пытаюсь разобраться с clr
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
4323 / 2192 / 966
Регистрация: 01.06.2021
Сообщений: 7,546
13.08.2022, 14:48 23
Verevkin, мне не нравится синтаксис языков, похожих на Delphi, Pascal. А вот с самим языком, как я уже говорил, вообще не знаком. Вообще, говорят, что программа написанная опытным программистом на Python будет быстрее работать программы на С++, написанной посредственным программистом. Не Delphi такой хороший язык, а вы просто очень опытны, раз говорите, что 20 лет на нем работаете.
0
Злостный нарушитель
 Аватар для Verevkin
9698 / 5257 / 1199
Регистрация: 12.03.2015
Сообщений: 24,776
13.08.2022, 16:36 24
Цитата Сообщение от Royal_X Посмотреть сообщение
Вообще, говорят, что программа написанная опытным программистом на Python будет быстрее работать программы на С++, написанной посредственным программистом.
Тебя обманули.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
4323 / 2192 / 966
Регистрация: 01.06.2021
Сообщений: 7,546
13.08.2022, 16:51 25
Verevkin, конечно, я немного утрирую, но все же есть доля правды. Просто много нубов поразвелось, которые пишут гуанокоды на С++. А в целом, С++ разумеется быстрее других языков и даёт много возможностей по низкоуровневому управлению памятью.
0
Злостный нарушитель
 Аватар для Verevkin
9698 / 5257 / 1199
Регистрация: 12.03.2015
Сообщений: 24,776
13.08.2022, 16:59 26
Цитата Сообщение от Royal_X Посмотреть сообщение
С++ разумеется быстрее других языков
Повторяю: у нас в приоритете время РАЗРАБОТКИ.Оно стоит очень дорого, поэтому экономия времени щедро оплачивается. Моя зарплата примерно равна средней по региону, умноженной на 4.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
4323 / 2192 / 966
Регистрация: 01.06.2021
Сообщений: 7,546
13.08.2022, 17:32 27
Verevkin, а что за регион? Или укажи сразу в $
0
Злостный нарушитель
 Аватар для Verevkin
9698 / 5257 / 1199
Регистрация: 12.03.2015
Сообщений: 24,776
13.08.2022, 20:13 28
Цитата Сообщение от Royal_X Посмотреть сообщение
а что за регион?
Город Рязань.
0
13.08.2022, 20:13
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.08.2022, 20:13
Помогаю со студенческими работами здесь

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

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

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

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

Пытаюсь разобраться с Group by
Всем привет, я начинающий, пытаюсь разобраться с языком запросов SQL. Помогите разобраться с...

Пытаюсь разобраться с MVC
В общем чтобы разобраться с паттерном MVC пишу тестовый мини-фреймворк. Сделал простенький сайт. В...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Rust или Go? А может C++?
hw_wired 28.01.2025
С каждой новой технологией или методологией появляются новые языки программирования, призванные решать конкретные задачи либо улучшать аспекты производительности и безопасности. Среди множества. . .
Fortran и WinAPI: как создать приложение с графическим интерфейсом
hw_wired 28.01.2025
Fortran — это один из старейших высокоуровневых языков программирования, широко используемый в науке и инженерии уже несколько десятилетий. Его название происходит от "Formula Translation" (перевод. . .
Списки в Haskell
hw_wired 28.01.2025
Haskell является функциональным языком программирования, который отличается лаконичностью синтаксиса и мощными абстракциями. Важным концептом в Haskell являются списки — упорядоченные коллекции. . .
Функции высшего порядка в Haskell
hw_wired 28.01.2025
Haskell – это современный функциональный язык программирования, который получил широкое распространение благодаря своей выразительности и мощным абстракциям. Одной из ключевых особенностей Haskell. . .
Как в цикле обойти все поля объекта в JavaScript
bytestream 28.01.2025
Объекты в JavaScript представляют собой фундаментальные структуры данных, которые позволяют хранить и организовывать связанную информацию в виде пар ключ-значение. Каждый объект можно представить как. . .
Как выбрать строки в DataFrame по значению столбца в Pandas
bytestream 28.01.2025
В области анализа данных библиотека Pandas стала незаменимым инструментом для работы с табличными данными в Python. Эта мощная библиотека предоставляет множество функций для эффективной обработки и. . .
Как сделать перенос строки в Bash
bytestream 28.01.2025
При работе с командной оболочкой Bash разработчики часто сталкиваются с необходимостью форматирования текстового вывода, где ключевую роль играет правильное управление переносами строк. Умение. . .
Поиск подстроки в строке с помощью Bash
bytestream 28.01.2025
Поиск подстроки в строке является одной из важных задач в программировании и обработке текстов. Применение такого поиска можно найти в самых разных областях, от анализа данных до разработки. . .
[golang] 169. Majority Element
alhaos 28.01.2025
Тут надо вернуть "мажористый" элемент который встречается в слайсе больше чем в половине случаев. По условиям задачи во входных данных такой элемент обязан присутствовать. / / . . .
Когда лучше использовать LinkedList вместо ArrayList в Java
bytestream 28.01.2025
При разработке Java-приложений выбор правильной структуры данных играет ключевую роль в обеспечении эффективности и производительности программы. ArrayList и LinkedList являются двумя. . .
Какой ответ HTTP лучше использовать: 403 Forbidden или 401 Unauthorized, когда недостаточно прав
bytestream 28.01.2025
В современной веб-разработке правильная обработка ошибок и точное информирование клиентов о статусе их запросов играют критическую роль в создании надежных и безопасных приложений. Особое внимание. . .
Как получить список всех файлов коммита в Git
bytestream 28.01.2025
Система контроля версий Git представляет собой мощный инструмент для управления изменениями в программном коде и других файлах проекта. В основе работы Git лежит концепция коммитов - снимков. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru