|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
|
Использование собственного класса в Windows Forms20.09.2012, 18:16. Показов 31878. Ответов 19
Метки нет (Все метки)
Здравствуйте, есть такая проблема, никак не могу понять как в Winwows Forms использовать свой класс. Есть у меня класс class.cpp, form1.h, проект.cpp. Может ли мне кто-нибудь подробно объяснить, как подружить класс с проектом? На этом форуме уже была такая тема, но там насколько я понял проблему так и не решили, то есть может быть и решили, но я не заметил. Там как-то всё не содержательно, урывками. Внедрить свой класс в Windows Forms приложение.
0
|
|
| 20.09.2012, 18:16 | |
|
Ответы с готовыми решениями:
19
Использование собственного класса в Windows Forms Использование собственного класса в Виндовс Формс Использование Boost в Windows Forms |
|
Комп_Оратор)
|
|||||||||||||||||||||||||||||||
| 20.09.2012, 21:13 | |||||||||||||||||||||||||||||||
|
Создаём Решение (Solution) C++ Windows Forms Applicftion
В папку хедерфайлов (там уже есть Form1) добавляем MyClass.h в нём пишем:
в нём пишем:
2
|
|||||||||||||||||||||||||||||||
|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
|
| 20.09.2012, 21:31 [ТС] | |
|
Спасибо, буду пробовать
0
|
|
|
Комп_Оратор)
|
|||||||
| 20.09.2012, 21:49 | |||||||
Если в методе используется не объявленная в классе переменная класса NET включайте то же в Cpp.
0
|
|||||||
|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
|||||||||||
| 20.09.2012, 22:37 [ТС] | |||||||||||
|
Сделал как вы сказали, появилось две ошибки:
1>d:\мои документы\visual studio 2010\projects\matrix_lite\matrix_lite\Cl ass_Matrix.h(8): error C4368: не удается определить "Matrix_L" как член управляемого "Matrix_of_Light": смешанные типы не поддерживаются 1>d:\мои документы\visual studio 2010\projects\matrix_lite\matrix_lite\Cl ass_Matrix.h(9): error C4368: не удается определить "Mass_mult" как член управляемого "Matrix_of_Light": смешанные типы не поддерживаются На форуме нашел похожую тему, (Не могу использовать класс на форме)сделал так как там сказано, не помогло. Появилось еще больше ошибок, вместе с теми, которые были еще раньше. Выложу коды cpp и h: Код .h:
0
|
|||||||||||
|
Комп_Оратор)
|
|
| 20.09.2012, 22:47 | |
|
fredwriter, в NET свои, управляемые типы. Там есть и своя библиотека<vector/>, например. То есть делайте в NET, если хотите использовать ссылочные классы управляемой среды (кучи). А это тема для самообразования.
0
|
|
|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
|
| 20.09.2012, 23:05 [ТС] | |
|
Не понял, что значит делайте в NET? Я понял, что в NET есть свои управляемые типы, и <vector/>. То есть мне в классе использовать какие-то заголовочные файлы NET и в NET есть такой-же класс как вектор или я не так понял?
0
|
|
|
Комп_Оратор)
|
||
| 20.09.2012, 23:15 | ||
|
#include <vector/> которая позволяет объявить и использовать тип. В NET свои массивы, векторы, списки... Но это нужно читать. Книги (их не много), MSDN... Поэтому и не рвётся никто отвечать на такие вопросы. Я показал как подключить класс. Но как использовать типы и библиотеки, - места не хватит. Впрочем это и не сложно. Обычно. Однако нужно почитать. Но некоторые вещи и не возможно сделать, - С++ Cli не поддерживает множественное наследование, например.
0
|
||
|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
|
| 20.09.2012, 23:47 [ТС] | |
|
Я целых полтора дня потратил на изучение vector'a, думал, ура, теперь буду использовать двумерный вектор в классе, радовался, а теперь оказывается придется опять что-то читать и изучать. Посоветуйте литературу (желательно на русском) и я создам тему на тему векторы, массивы в NET.
0
|
|
|
Комп_Оратор)
|
|
| 20.09.2012, 23:59 | |
|
Хортон А. Базовый курс Visual C++ 2005: Базовый курс. //есть и для 2010
Пахомов Б.И. С/С++ и Visual C++ 2008 для начинающих. Не волнуйтесь, - есть свой вектор. Посмотрите, ещё в заголовке раздела, различия C++NEТ и C# или как-то так. Я если найду - кину ссылку. ![]() зы:Если Вы только начали изучение С++, лучше его и учите. C++/NET, - никуда не денется. Нужно будет быстро GUI сделать, - овладеете. Но правильнее учить чистый С++ сначала (имхо).
0
|
|
|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
|
| 21.09.2012, 00:29 [ТС] | |
|
За литру спасибо. Про вектор интересно
. Мне в университете задали написать класс именно для WinForm, поэтому придется изучать NET. Я C++ изучаю по книге Герберта Шилдта - Самоучитель С++.
0
|
|
|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
|||||||||||
| 21.09.2012, 19:28 [ТС] | |||||||||||
|
Переписал класс без использования вектора, просто массивы использую.
1>Matrix_Lite.obj : error LNK2020: неразрешенная лексема (06000001) Matrix_of_Light::step_out_inv 1>Matrix_Lite.obj : error LNK2020: неразрешенная лексема (06000002) Matrix_of_Light::step_out_det 1>Matrix_Lite.obj : error LNK2020: неразрешенная лексема (06000003) Matrix_of_Light::.ctor 1>Matrix_Lite.obj : error LNK2020: неразрешенная лексема (06000004) Matrix_of_Light::~Matrix_of_Light 1>Matrix_Lite.obj : error LNK2020: неразрешенная лексема (06000005) Matrix_of_Light::elem_trans_inverse 1>Matrix_Lite.obj : error LNK2020: неразрешенная лексема (06000006) Matrix_of_Light::Res 1>Matrix_Lite.obj : error LNK2020: неразрешенная лексема (06000007) Matrix_of_Light::elem_trans_determ 1>d:\мои документы\visual studio 2010\Projects\Matrix_Lite\Debug\Matrix_L ite.exe : fatal error LNK1120: 7 неразрешенных внешних элементов Подключаю #include "Class_Matrix.h" в cpp проекта. Вот код класса: .h
...понятно, на конструктор он тоже ругается, в тексте ошибки он его почему-то .ctor обозвал. Добавлено через 17 минут нашел на одном форуме похожую тему, там написали, что шаблоны нельзя выносить в .cpp файл. Переместил, те функции, которые у меня уже были описаны в хедэр и они перестали отображаться как запрещенные лексемы, значит вроде как решил проблему?
0
|
|||||||||||
|
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
|
||||||
| 21.09.2012, 20:13 | ||||||
|
Ошибки сыпятся потому-что нет реализаций всех методов и конструктора.
Хотя бы пустые скобки поставьте пока
Зачем проблемы ? MSDN Array
1
|
||||||
|
Комп_Оратор)
|
|||||||
| 21.09.2012, 20:23 | |||||||
|
например одномерный массив целых объявляется так:
А типы родного С++ в ref class'ах не живут.
0
|
|||||||
|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
|
| 21.09.2012, 20:46 [ТС] | |
|
Хорошо уговорили, буду использовать CLI array, только мне не очень понятно, зачем так делать: на числом С++ один массив, на CLI другой, неужели нельзя было какой-нибудь один оставить? Ладно, хорошо, пусть хоть десять, но сделали бы их не конфликтующими... Но тогда все бы пользовались каким-нибудь одним. Заставляют они что-ли таким образом? Не скорее всего я просто что- нибудь не знаю важного в этом всём деле.
0
|
|
|
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
|
|||||||||||||||||
| 21.09.2012, 22:50 | |||||||||||||||||
|
Не по теме: хотел сразу написать но у меня интернет отрубился Не, ну смешивать то можно, хотел сказать, зачем напрягаться ? ![]() Например на форме текстбокс и кнопка . Создаем матрицу в своем классе ( неуправляемом ) и выводим на форму в текстбокс MyClass.h
0
|
|||||||||||||||||
|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
||
| 21.09.2012, 22:55 [ТС] | ||
|
У меня появилась еще один вопрос. В проекте, по нажатии на одну из кнопок, я инициализировал двумерный массив данными, введенными пользователем в dataGridView, и это работало и с векторами, и с динамическими массивами, и сейчас прекрасно работает с CLI:array.
0
|
||
|
Комп_Оратор)
|
||
| 21.09.2012, 23:16 | ||
![]() Тут внизу окна надыбал: Использование структур в управляемом классе (класс окна Windows Forms)
0
|
||
|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
||||
| 22.09.2012, 00:24 [ТС] | ||||
|
Переделал на CLI array, те же ошибки, что были с динамическими C++ - те же неразрешенные лексемы.
На секундочку, у меня в хедере работало и с динамическими от C++. Добавлено через 28 минут Добавлено через 30 минут Ура, экземпляр класса создался!!! Класс весь в хедере.
0
|
||||
| 22.09.2012, 00:24 | |
|
Помогаю со студенческими работами здесь
20
Использование WinINet в Windows Forms Использование string в Windows Forms Application
Чтение переменных класса из файла в Windows Forms Array из собственного класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|