Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 297
#1

Глобальный объект

30.10.2017, 17:28. Просмотров 582. Ответов 49

Есть у меня приложение с формой Win Forms(CLR) Ну у меня весь код соответственно в .h файле. Как там объявить вектор, что-бы его можно было использовать во всех ф-циях? Вот вектор: std::vector < HANDLE > Hl;
Пишет, что член класса управляемый не может относиться к типу класса не управляемый ...\MyForm.h
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2017, 17:28
Ответы с готовыми решениями:

Глобальный объект
Как сделать, чтобы я создал объект, и его видел весь файл? Суть в том, что в...

Глобальный объект класса
Добрый вечер всем!) Вообщем суть такая: пишу статическую библиотеку, которая...

Глобальный объект класса
Ребят, написал класс для реализации очереди на основе массива в отдельном...

Динамический глобальный объект.
Здравствуйте. Пишу Auto-Clicker . Текущая версия содержит заранее созданный...

Правильно созданный глобальный объект
Необходимо создать создать несколько объектов классов глобально. Я делаю:...

49
Pink_Pank
47 / 31 / 21
Регистрация: 04.04.2016
Сообщений: 209
30.10.2017, 17:32 #2
Цитата Сообщение от Zagadohnik37 Посмотреть сообщение
Ну у меня весь код соответственно в .h файле.
О боже...
0
nmcf
6267 / 5575 / 2536
Регистрация: 14.04.2014
Сообщений: 23,468
30.10.2017, 17:36 #3
Как всё приложение в h-файле оказалось?
0
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 297
30.10.2017, 17:44  [ТС] #4
Pink_Pank, Ну возникла проблема и понадобился c++, нашёл как сделать GUI приложения в визуалке с WinForms, в event создал обработчики, создались в .h файле и норм вроде... Так как мне решить мою проблему?

Добавлено через 7 минут
Вот видео с туториалом: https://www.youtube.com/watch?v=urhbIfR9Beo ...
0
Pink_Pank
47 / 31 / 21
Регистрация: 04.04.2016
Сообщений: 209
30.10.2017, 17:47 #5
Цитата Сообщение от Zagadohnik37 Посмотреть сообщение
Как там объявить вектор, что-бы его можно было использовать во всех ф-циях?
Объявите его в самом начале. За пределами какой-либо функции. Тогда он будет у вас глобальным и виден будет всем (кто записан после этого объявления).
0
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 297
30.10.2017, 18:27  [ТС] #6
Цитата Сообщение от Pink_Pank Посмотреть сообщение
Объявите его в самом начале. За пределами какой-либо функции. Тогда он будет у вас глобальным и виден будет всем (кто записан после этого объявления).
Цитата Сообщение от Zagadohnik37 Посмотреть сообщение
Пишет, что член класса управляемый не может относиться к типу класса не управляемый ...\MyForm.h
Вы вопрос читаете?
0
Pink_Pank
47 / 31 / 21
Регистрация: 04.04.2016
Сообщений: 209
30.10.2017, 18:35 #7
Цитата Сообщение от Zagadohnik37 Посмотреть сообщение
Вы вопрос читаете?
Цитата Сообщение от Zagadohnik37 Посмотреть сообщение
Как там объявить вектор, что-бы его можно было использовать во всех ф-циях?
ответ на вопрос дан.
Цитата Сообщение от Zagadohnik37 Посмотреть сообщение
Пишет, что член класса управляемый не может относиться к типу класса не управляемый ...\MyForm.h
Извини, брателло, забыл сегодня дома нейрошлем для чтения мыслей индусских#гуглопереводчиков#на#русский. Не могу знать, что за такой тип класса - не управляемый - в стандарте такого нет.

Добавлено через 3 минуты
А, стоп, кажись я поймал волну индусомышления. Скорее всего, имелся в виду спецификатор доступа внутри класса. Пиши в своих классах в самом начале public:
0
Usaga
Эксперт .NET
4880 / 3271 / 584
Регистрация: 21.01.2016
Сообщений: 12,872
Завершенные тесты: 2
30.10.2017, 18:40 #8
Zagadohnik37, вы используете диалект языка С++, который представляет из себя смесь обычного, неуправляемого кода и управляемого (CLR, .NET). У этого диалекта есть ограничения на взаимодействия этих его двух сторон. Об одном таком ограничении вам компилятор говорит прямо: нельзя в классе неуправляемого кода держать поле управляемого типа.

Если вы не поняли о чём это всё, то рекомендую почитать что-нибудь. Или использовать чистый С++.
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4424 / 2395 / 664
Регистрация: 18.10.2014
Сообщений: 4,050
30.10.2017, 18:42 #9
Цитата Сообщение от Zagadohnik37 Посмотреть сообщение
Есть у меня приложение с формой Win Forms(CLR) ... член класса управляемый не может относиться к типу класса не управляемый
В С++ нет и никогда не было никакого "управляемый"/"не управляемый". Форум по CLI - дальше по коридору. Здесь - форум по С++.
2
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 297
30.10.2017, 19:07  [ТС] #10
Так как мне создать что-то вроде массива с возможностью добавлять и удалить значения? Аналог listbox, если быть точнее. Только для HANDLE.

Добавлено через 1 минуту
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
В С++ нет и никогда не было никакого "управляемый"/"не управляемый". Форум по CLI - дальше по коридору. Здесь - форум по С++.
Я в c++ новичок и я просто не мог знать этого...
0
nmcf
6267 / 5575 / 2536
Регистрация: 14.04.2014
Сообщений: 23,468
30.10.2017, 19:33 #11
Используй List, который в .NET.
0
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 297
30.10.2017, 19:54  [ТС] #12
Цитата Сообщение от nmcf Посмотреть сообщение
Используй List, который в .NET.
Примерчик можно?

Добавлено через 2 минуты
Если вы про это: https://msdn.microsoft.com/ru-ru/library/802d66bt.aspx , то это почти тоже самое, что и вектор...
0
nmcf
6267 / 5575 / 2536
Регистрация: 14.04.2014
Сообщений: 23,468
30.10.2017, 19:58 #13
Какой пример? Мы ещё не видели, что ты там наваял. HANDLE - это целый тип? Тогда List<HANDLE>.

Добавлено через 1 минуту
Цитата Сообщение от Zagadohnik37 Посмотреть сообщение
Если вы про это
Я про это: https://msdn.microsoft.com/ru-ru/library/6sh2ey19(v=vs.110).aspx
0
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 297
30.10.2017, 20:01  [ТС] #14
Какой пример? Мы ещё не видели, что ты там наваял. HANDLE - это целый тип? Тогда List<HANDLE>.[/quote]
"HANDLE" не является допустимым универсальным аргументом[quote="nmcf;11667840"]
0
nmcf
6267 / 5575 / 2536
Регистрация: 14.04.2014
Сообщений: 23,468
30.10.2017, 20:01 #15
Какой это тип?
0
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 297
30.10.2017, 20:06  [ТС] #16
(HANDLE я получаю в результате CreateFile.)
Кстати, если что, то мне бы пример, как объявить этот List<HANDLE> Hl; вне ф-ции...

Добавлено через 30 секунд
Цитата Сообщение от nmcf Посмотреть сообщение
Какой это тип?
В смысле?
0
nmcf
6267 / 5575 / 2536
Регистрация: 14.04.2014
Сообщений: 23,468
30.10.2017, 20:20 #17
Его не достаточно просто объявить.
C++
1
List<HANDLE> ^ls = gcnew List<HANDLE>();
0
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 297
30.10.2017, 20:49  [ТС] #18
Цитата Сообщение от nmcf Посмотреть сообщение
Его не достаточно просто объявить.
List<HANDLE> ^ls = gcnew List<HANDLE>();
"HANDLE" не является допустимым универсальным аргументом ...MyForm.h
требуется спецификатор типа ...\MyForm.h

И в смысле не достаточно просто объявить? Можно мне весь код(как и где его объявить и куда впихнуть с new).
0
nmcf
6267 / 5575 / 2536
Регистрация: 14.04.2014
Сообщений: 23,468
30.10.2017, 20:54 #19
А с int работает?
Цитата Сообщение от Zagadohnik37 Посмотреть сообщение
в смысле не достаточно просто объявить
gcnew должен быть, динамически создаётся. Выше смотри.
0
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 297
30.10.2017, 22:27  [ТС] #20
Цитата Сообщение от nmcf Посмотреть сообщение
А с int работает?
Да...

Добавлено через 1 час 5 минут
Ну а как быть с моей задачей? (Безразмерный массив HANDLE)

Добавлено через 2 минуты
Может можно со static что-нибудь придумать ? Вектор ведь у меня только глобально не хотел объявляться, а в ф-ции норм...
0
30.10.2017, 22:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2017, 22:27

Почему глобальный объект, объявленный до main, конструируется в ней?
Всё просто, имеем код: #include &lt;windows.h&gt; #include &lt;stdio.h&gt; using...

Может ли объект-член, или объект-элемент достучаться к содержащему его?
Предположим, class A { ... }; class B { .... A a; ... };

интерфейс, в методе которого создается объект типа IDictionary и возвращается ссылка на этот объект
Привет всем. Необходимо реализовать интерфейс, в методе которого создается...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru