Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 02.03.2020
Сообщений: 106

Ошибки С2065

26.03.2020, 21:58. Показов 1345. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, пишу программу и нужно из второй формы посодействовать на первую, для этого ввёл две переменные: h, m :

Кликните здесь для просмотра всего текста
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
#pragma once
#include <iostream>
extern int global_int;
 
namespace OOP3 {
 
 
 
    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>
    /// Сводка для MyForm1
    /// </summary>
    public ref class MyForm1 : public System::Windows::Forms::Form
    {
 
    public:
        MyForm1(void)
        {
            InitializeComponent();
            
            extern int h;
            extern int m;
        }


Вот как выглядит привязка к форме:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
#pragma endregion
    private: System::Void Button1_Click(System::Object^ sender, System::EventArgs^ e) {
        h = Convert::ToInt32(textBox1->Text);
        m = Convert::ToInt32(textBox1->Text);
    }


Вот как выглядит это в нулевой форме:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private: System::Void ВысотаСтрокToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
    MyForm1^ f = gcnew MyForm1();
    this->Hide();
    f->ShowDialog();
    this->Show();
    for (int i = 0; i < dataGridView1->RowCount; i++) {
        DataGridViewRow^ row = dataGridView1->Rows[i];
        row->Height = h;
    }
 
}
private: System::Void ШиринаСтолбцовToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
    MyForm1^ f = gcnew MyForm1();
    this->Hide();
    f->ShowDialog();
    this->Show();
    for (int i = 0; i < dataGridView1->ColumnCount; i++) {
        DataGridViewColumn^ column = dataGridView1->Columns[i]; column->Width = m;
    }
}


Вот как выглядят сами ошибки:



И что самое странное на одну и ту же строку и переменную по 2 ошибки.


Жду очень вашей помощи и объяснений, заранее благодарен!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.03.2020, 21:58
Ответы с готовыми решениями:

Подсчет строк входного потока - Ошибка С2065
Компилятор показывает ошибку С2065. Пишу в Microsoft VS 2015. Помогите пожалуйста. #include &lt;stdio.h&gt; /* подсчет строк...

Найти ошибки в данной программе (известно что есть только 2 ошибки)
У меня в модуле с програмирования задание: Найти ошибки в данной программе (известно что есть только 2 ошибки) .model small .data ...

Компьютер был перезагружен после критической ошибки. Код ошибки: 0x0000000a
Компьютер был перезагружен после критической ошибки. Код ошибки: 0x0000000a (0x0000000000000048, 0x0000000000000002, 0x0000000000000001,...

14
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
27.03.2020, 00:40
Цитата Сообщение от Evreii Посмотреть сообщение
C++
1
2
            extern int h;
            extern int m;
Из конструктора вынеси, там это локальные переменные, видимые только в теле конструктора. И зачем здесь extern?
0
1 / 1 / 0
Регистрация: 02.03.2020
Сообщений: 106
27.03.2020, 12:20  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
И зачем здесь extern?
Просто как один из самых быстрых способов передачи переменной с одной формы в другую.
0
1 / 1 / 0
Регистрация: 02.03.2020
Сообщений: 106
27.03.2020, 12:24  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Из конструктора вынеси, там это локальные переменные, видимые только в теле конструктора.
Спасибо, вынес вот только теперь возникают вот такие ошибки:

Кликните здесь для просмотра всего текста
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
27.03.2020, 14:02
Куда вынес? Как вынес?

Добавлено через 3 минуты
Лучше скажи, что хочешь. Глобальные переменные? Или что?
И выкладывай лучше вывод компилятора, текстом, а не скрин списка ошибок.

Добавлено через 3 минуты
Хочешь глобальные переменные, то, в каком-нибудь .h файле, в глобальной области:
C++
1
2
extern int n;
extern int m;
В каком-нибудь .cpp, в глобальной области:
C++
1
2
int n;
int m;
Где нужно использовать эти переменные, подключаешь заголовочный.
0
1 / 1 / 0
Регистрация: 02.03.2020
Сообщений: 106
27.03.2020, 14:16  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Куда вынес? Как вынес?
Записал в MyForm1.h
C++
1
2
3
4
5
6
7
#pragma once
#include <iostream>
 
extern int global_int;
 
extern int h;
extern int m;
Нужны глобальные переменные.


Записал в MyForm1.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "MyForm1.h"
#include <Windows.h> 
using namespace OOP3;
 
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    Application::Run(gcnew MyForm1);
    int h;
    int m;
    return 0;
}
Извините я просто новичок, только учусь и могу не всё понимать.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
27.03.2020, 14:27
Цитата Сообщение от Evreii Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    Application::Run(gcnew MyForm1);
    int h;
    int m;
    return 0;
}
Это опять здесь локальные (для main). Вынеси их, в этом файле, в глобальную область.

Добавлено через 2 минуты
...
Цитата Сообщение от nd2 Посмотреть сообщение
В каком-нибудь .cpp, в глобальной области:
C++
1
2
int n;
int m;
0
1 / 1 / 0
Регистрация: 02.03.2020
Сообщений: 106
27.03.2020, 14:51  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Вынеси их, в этом файле, в глобальную область.
Вынес вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "MyForm1.h"
#include <Windows.h> 
int h;
int m;
using namespace OOP3;
 
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    Application::Run(gcnew MyForm1);
    return 0;
}

Теперь выдаёт следующие ошибки:

Кликните здесь для просмотра всего текста
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка LNK2005 "int h" (?h@@3HA) єцх юяЁхфхыхэ т MyForm.obj OOP3 C:\Users\User\source\repos\OOP3\MyForm1. obj 1
Ошибка LNK2005 "int m" (?m@@3HA) єцх юяЁхфхыхэ т MyForm.obj OOP3 C:\Users\User\source\repos\OOP3\MyForm1. obj 1
Ошибка LNK2005 "extern "C" int __stdcall WinMain(struct HINSTANCE__ *,struct HINSTANCE__ *,char *,int)" (?WinMain@@$$J216YGHPAUHINSTANCE__@@0PAD H@Z) єцх юяЁхфхыхэ т MyForm.obj OOP3 C:\Users\User\source\repos\OOP3\MyForm1. obj 1
Ошибка LNK2005 _WinMain@16 єцх юяЁхфхыхэ т MyForm.obj OOP3 C:\Users\User\source\repos\OOP3\MyForm1. obj 1
Ошибка LNK1169 юсэрЁєцхэ ьэюуюъЁрЄэю юяЁхфхыхээ√щ ёшьтюы - юфшэ шыш сюыхх OOP3 C:\Users\User\source\repos\OOP3\Debug\OO P3.exe 1
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
27.03.2020, 15:14
Покажи объявление этих переменных в "MyForm1.h".
0
1 / 1 / 0
Регистрация: 02.03.2020
Сообщений: 106
27.03.2020, 15:16  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Покажи объявление этих переменных в "MyForm1.h".
C++
1
2
3
4
5
6
7
#pragma once
#include <iostream>
 
extern int global_int;
 
extern int h;
extern int m;
Это самые первые строки.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
27.03.2020, 15:23
Ещё какие-нибудь файлы (.h, .cpp) есть в проекте? Что-то там у тебя непонятное делается:
Цитата Сообщение от Evreii Посмотреть сообщение
Ошибка LNK2005 "extern "C" int __stdcall WinMain(struct HINSTANCE__ *,struct HINSTANCE__ *,char *,int)" (?WinMain@@$$J216YGHPAUHINSTANCE__@@0PAD H@Z) єцх юяЁхфхыхэ т MyForm.obj OOP3
Пишет, что точка входа уже определена. Ещё одна main() есть? Или что? Откуда здесь, вообще, WinAPI взялось? Так изначально было?
0
1 / 1 / 0
Регистрация: 02.03.2020
Сообщений: 106
27.03.2020, 15:28  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Ещё какие-нибудь файлы (.h, .cpp) есть в проекте?
Есть это MyForm.cpp :
C++
1
2
3
4
5
6
7
8
9
10
#include "MyForm.h"
#include <Windows.h> 
using namespace OOP3;
 
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    Application::Run(gcnew MyForm);
    return 0;
}
Это MyForm.h :

C++
1
2
3
4
5
6
7
8
#pragma once
#include<math.h>
#include<iostream>
#include"MyForm1.h"
double xn, xk, xh, x, y, a, ymax, ymin, yt;
int i, k, j;
int h;
int m;
Цитата Сообщение от nd2 Посмотреть сообщение
Откуда здесь, вообще, WinAPI взялось?
Это надстройка WinForm для VS19 чтобы на с++ работать а не на с# .
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
27.03.2020, 15:55
Цитата Сообщение от Evreii Посмотреть сообщение
Это MyForm.h :
extern к глобальным добавь.

Добавлено через 1 минуту
Без extern, переменные с одинаковыми именами, в глобальной области, должны быть только в одном файле .cpp, во всех остальных файла - только с extern (и без инициализации, если с инициализацией, то extern будет игнорироваться).

Добавлено через 2 минуты
Цитата Сообщение от Evreii Посмотреть сообщение
Это надстройка WinForm для VS19 чтобы на с++ работать а не на с# .
Типа, чтобы и формы и С++?
0
1 / 1 / 0
Регистрация: 02.03.2020
Сообщений: 106
27.03.2020, 16:20  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Типа, чтобы и формы и С++?
Да, и это на VS19

Добавлено через 12 минут
Цитата Сообщение от nd2 Посмотреть сообщение
extern к глобальным добавь.
Добавил, но ошибки всё ровно не пропали. Решил проблему отладки через командную строку компоновщика.
Ввёл: /FORCE , то теперь запускается. В любом случае очень вам благодарен за ваши объяснения и старания.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
27.03.2020, 17:09
Цитата Сообщение от Evreii Посмотреть сообщение
Добавил, но ошибки всё ровно не пропали.
Какие ошибки? По поводу h и m? Я не верю в чудеса в программировании.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.03.2020, 17:09
Помогаю со студенческими работами здесь

Ошибки после компиляции на Visual Express 2012.Ошибки в теме
Добрый вечер ребят помогите пожалуйста.Программа написана на Visual Express 2012.Обясните что поменять чтобы зароботало. После компиляции...

Inet Explorer при обнаружении ошибки вместо описания ошибки выдает иероглифы
Начал изучение ASP. Inet Explorer при обнаружении ошибки вместо описания ошибки выдает иероглифы... А мне ОЧЕНЬ хотелось бы почитать, что...

Windows XP на HP compaqt 6220 ошибки при установке, как убить эти ошибки
Всех приветствую уважаемые Комрады ,форумчане не проходите мимо помогите откликнитесь мучаюсь уже с месяц попробывал всё что можно ...

Найти ошибки в коде и исправить эти ошибки (Наследование)
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h (inline) #pragma once class list...

При повторном появлении ошибки обработка ошибки не срабатывает
Логика: - Пользователь. Нажимает кнопку; - Код . Создаёт &quot;Recordset&quot; &quot;rstStud&quot;(студенты) и &quot;rstGroupStud&quot;(ГруппыСтуденты);...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru