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

Ошибка при реализации в создаваемом классе метода с аргументом в виде указателя на форму

11.11.2015, 07:22. Показов 972. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Подскажете кто знает в чём может быть ошибка.
Есть namespace WinForm в нём класс MyForm (форма), в отдельном заголовочном файле (myfile.h) создаю свой класс myClass, в нём несколько методов, одному из методов этого класса необходимо в качестве аргумента передать указатель на форму.
Пишу так:
C++
1
2
3
4
5
6
7
8
class myClass
{
public:
.....
.....
.....
void find(WinForm::MyForm ^);
};
В .cpp описываю данный метод:
C++
1
2
3
void myClass::find(WinForm::MyForm ^myfrm)
{
}
И вот тут сразу при объявлении возникает ошибка, в которой написано:
Error: объявление не совместимо с "void myClass::find(<error-type> ^)"
В .h файле ошибок нет, а в .cpp вот это. Остальные методы работают правильно. Где я ошибся?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.11.2015, 07:22
Ответы с готовыми решениями:

Ошибка при реализации метода класса
Всем здрасьте. Возникла проблема при реализации метода класса. Никак не могу понять, в чём дело. Помогите, пжалста :/ Объявление...

Ошибка при использовании метода 1 класса во 2 классе
public LinearLayout LayoutOfScroll; public EditText edBudget; public TextView tvZatrati; public TextView tvOstatok; public...

Не удалось сформировать внешнюю печатную форму(толстую)! Ошибка при вызове метода контекста (Выполнить): {(14, 1)}: Синтаксическая ошибка "ИЗ" <<?>>ИЗ
Подскажите, пожалуйста. Выбрал для счета только услуги, написал: Шапка = Запрос.Выполнить().Выгрузить(); Шапка.Следующий(); ...

8
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9670 / 4823 / 762
Регистрация: 17.04.2012
Сообщений: 9,661
Записей в блоге: 14
12.11.2015, 14:39
В cpp-файле
C++
1
using namespace WinForm;
0
0 / 0 / 0
Регистрация: 11.11.2015
Сообщений: 5
13.11.2015, 00:41  [ТС]
Нет это не поможет.
Я разобрался. Всё сделал. Ошибка была банальна, от невнимательности.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
13.11.2015, 11:57
Цитата Сообщение от myuser Посмотреть сообщение
Ошибка была банальна
Абсолютно. Там вообще всё само получается. То есть всё как будто просится чтобы указатель на форму отдали внешнему классу. Особенно неуправляемому. Раз Вы скромно не показываете то вот вариант.
Вложения
Тип файла: zip ClassLableChangerCLi.zip (2.92 Мб, 3 просмотров)
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
13.11.2015, 15:31
Цитата Сообщение от tezaurismosis Посмотреть сообщение
В cpp-файле
Лучше просто:
C++
1
2
3
namespace WinForm{
//всё что надо
}
То есть "продолжение пространства имён WinForm".
А ещё stdafx.h надо подключить.
0
0 / 0 / 0
Регистрация: 11.11.2015
Сообщений: 5
13.11.2015, 15:42  [ТС]
Цитата Сообщение от IGPIGP Посмотреть сообщение
Абсолютно. Там вообще всё само получается. То есть всё как будто просится чтобы указатель на форму отдали внешнему классу. Особенно неуправляемому. Раз Вы скромно не показываете то вот вариант.
Я не то что бы поскромничал. Проблема у меня была в другом. В проекте используется три формы и дополнительный внешний класс. Я просто не заметил, что не все методы формы вынес в .cpp файл. Как говорится глаз "замылился". Пока я создавал и работал с методами своего класса, в которых не требовалось передавать указатель на форму всё было нормально, а при создании данного метода возникла описанная выше ошибка. После внимательного перестроения программы ошибка исчезла. Ваш вариант в моём случае скорее всего дал бы туже ошибку. При правильном построении программы отдачи указателя не потребовалось.

Добавлено через 4 минуты
Конечно, наверно требовалось подробнее описать проект сразу, но я просто не ожидал такой ошибки, до создания того метода проект был рабочий.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
13.11.2015, 18:38
Цитата Сообщение от myuser Посмотреть сообщение
При правильном построении программы отдачи указателя не потребовалось.
Это очень правильная мысль. Однако может потребоваться создать какие-то части кода общие для нескольких форм. И опять-таки, при правильном построении не требуется, обычно, отдавать не указатель на форму ни контроллы, а лучше чтобы такой код возвращал структуру данных, а каждая форма сама решала, что ей с ней делать. Если требуется немедленная реакция - можно делегировать и даже создать событие, где нужно.
Я не поверил, что ошибка устранилась, глядя на неуправляемый класс, метод которого должен принять указатель на форму. И конечно, оказалось, что вопрос устранился за ненадобностью. Вместе с ошибкой.
Ну и слава багу.
1
0 / 0 / 0
Регистрация: 11.11.2015
Сообщений: 5
14.11.2015, 05:01  [ТС]
Цитата Сообщение от IGPIGP Посмотреть сообщение
Я не поверил, что ошибка устранилась, глядя на неуправляемый класс, метод которого должен принять указатель на форму. И конечно, оказалось, что вопрос устранился за ненадобностью. Вместе с ошибкой.
Не очень понял мысль, но метод у меня в итоге остался без изменений. Точно такой как я описал в самом начале. Ошибки в нём нет.
А вот Ваша мысль о возврате структуры данных и создании событий полезна для обдумывания, т.к. сейчас я подошел к созданию метода, который должен отрабатывать в разных формах и производить там действия и прорисовку.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
14.11.2015, 10:58
Цитата Сообщение от myuser Посмотреть сообщение
и производить там действия и прорисовку
Тут уже всё зависит от объёма предполагаемых данных. Прорисовка, это дело такое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.11.2015, 10:58
Помогаю со студенческими работами здесь

ООП. Как в классе сделать обработчик события для тэга в виде метода будущего объекта?
Здравствуйте. Помогите разобрться. Я в PHP вывожу в цикле однотипные группы тэгов, к каждой группе привязываю объект JS - обработчик...

Ошибка в реализации метода Зейделя
Подскажите пожалуйста где в коде у меня ошибка. Заранее благодарю. using System; class Class1 { public static void Main()...

Ошибка в реализации метода простых итераций
Компилятор не выдает ошибок, но при реализации самой программы(численные методы - метод простых итераций), пишет, что корень 0. Что, в...

Ошибка в реализации метода три восьмых
Реализую метод &quot;трех восьмых&quot; ,нужно проинтегрировать .Кто-нибудь подскажет в чем ошибка? clc; a=pi/2; b=pi; syms x; ...

Ошибка в реализации метода, проверяющего правильность данных.
Вводиться ISBN номер. Метод реализован ckeck_ISBN(string isbn)! Нужно проверить правильность введенного номера по шаблону xx-xx-xx-c. xx...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru