Аватар для Yeah)))
0 / 0 / 0
Регистрация: 09.03.2010
Сообщений: 51

Error C2143: синтаксическая ошибка: отсутствие ";" перед "->"

28.11.2015, 23:17. Показов 3471. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Пишу простейшую программку:
  • Создаю приложение Windows Form
  • Добавляю на форму кнопку Button1
  • Добавляю на форму Label1
хочу чтобы программа при нажатии клавиши Button1 вывела в Label1 сообщение "ПРИВЕТ"

в итоге ошибка error C2143: синтаксическая ошибка: отсутствие ";" перед "->"

помогите пожалуйста, заранее спасибо.
P.S. Всю жизнь программировал на Delphi, болезненно начинаю осваивать C++



вот фрагмент кода, который отвечает за обработку события нажатия клавиши Button1

C++
1
2
3
4
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                char st[]="ПРИВЕТ";
                Form1->Label1->text = st;
             }


Вот весь код целиком
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
#pragma once
 
namespace Massives {
 
    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>
    /// Сводка для Form1
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
        Form1(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~Form1()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::Label^  label1;
    protected: 
    private: System::Windows::Forms::Button^  button1;
 
    private:
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Обязательный метод для поддержки конструктора - не изменяйте
        /// содержимое данного метода при помощи редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->label1 = (gcnew System::Windows::Forms::Label());
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->SuspendLayout();
            // 
            // label1
            // 
            this->label1->AutoSize = true;
            this->label1->Location = System::Drawing::Point(148, 58);
            this->label1->Name = L"label1";
            this->label1->Size = System::Drawing::Size(0, 13);
            this->label1->TabIndex = 0;
            // 
            // button1
            // 
            this->button1->Location = System::Drawing::Point(123, 107);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(98, 49);
            this->button1->TabIndex = 1;
            this->button1->Text = L"ok";
            this->button1->UseVisualStyleBackColor = true;
            this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
            // 
            // Form1
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(455, 300);
            this->Controls->Add(this->button1);
            this->Controls->Add(this->label1);
            this->Cursor = System::Windows::Forms::Cursors::Arrow;
            this->Name = L"Form1";
            this->Text = L"massive";
            this->ResumeLayout(false);
            this->PerformLayout();
 
        }
#pragma endregion
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                char st[]="ПРИВЕТ";
                Form1->Label1->text = st;
             }
    };
}
Добавлено через 2 часа 9 минут
забыл отметить, что данная ошибка на строчке
Form1->Label1->text = st;
А так же забыл отметить, что пользуюсь Visual Studio 2010
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.11.2015, 23:17
Ответы с готовыми решениями:

Ошибка: error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
Студент 1 курса, буду признателен за помощь. Курсовая работа в виде windows forms c++. Ошибки при программировании кнопки...

Синтаксическая ошибка: отсутствие ";" перед "->"
Не пойму в чем ошибка. form2.h подключен(в нем форма). Выдаёт двойную ошибку &quot;синтаксическая ошибка: отсутствие &quot;;&quot; перед...

Синтаксическая ошибка: отсутствие ";" перед ")"
не пойму...где тут ошибка!!?? private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { Thread^...

3
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18282 / 14205 / 5368
Регистрация: 17.03.2014
Сообщений: 28,884
Записей в блоге: 1
29.11.2015, 08:00
Лучший ответ Сообщение было отмечено Yeah))) как решение

Решение

Yeah))), надо так:
C++
1
2
String^ st = "ПРИВЕТ";
label1->Text = st;
Исправлены следующие ошибки:
1) Синтаксис A->B означает обращение к члену переменной слева. Form1 это тип, а не переменная. Поэтому писать Form1->Xyz нельзя. Префикс при обращении к label1 не нужен т.к. он является экземплярным членом класса. Если хочешь, то можешь написать this->label1->

2) С++ регистро-зависимый язык. Поэтому label1, а не Label1, и ->Text, а не ->text

3) Не смешивай C++ типы с CLR типами. Между ними возможны преобразования, но раз ты работаешь с Windows Forms, то используй String^ вместо char.
3
 Аватар для Fenix78563
165 / 11 / 4
Регистрация: 17.11.2015
Сообщений: 92
29.11.2015, 11:29
OwenGlendower, не по теме
как боженька объяснил =)
0
 Аватар для Yeah)))
0 / 0 / 0
Регистрация: 09.03.2010
Сообщений: 51
01.12.2015, 21:38  [ТС]
спасибо большое, Ваш ответ открыл мне глаза на многие вещи и помог решить множество проблем
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.12.2015, 21:38
Помогаю со студенческими работами здесь

For(auto const& val : stime) .cpp(47) : error C2143: синтаксическая ошибка: отсутствие "," перед ":"
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdexcept&gt; #include &lt;locale&gt; #include &lt;cstdlib&gt; #include &lt;string&gt; #include...

Error C2143: синтаксическая ошибка: отсутствие ";" перед "строка"
#include &lt;stdafx.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using namespace std; int main() { setlocale(...

Error C2143: синтаксическая ошибка: отсутствие ";" перед "private"
Помогите пожалуйста решить проблему. https://prnt.sc/230ntkf private: System::Void textBox1_Enter(System::Object^ sender,...

error C2143: синтаксическая ошибка: отсутствие ";" перед "using"
Сколько смотрю в код, не могу найти где я ошибку совершил, возможно вы поможете) main.cpp #include &lt;iostream&gt; #include...

Error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
Вот текст класса, где собственно говоря вылезает ошибка. Где я мог пропустить &quot;;&quot; никак не пойму. Причем предыдущая строка...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru