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

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

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

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

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

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

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

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

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

49
nmcf
6238 / 5550 / 2525
Регистрация: 14.04.2014
Сообщений: 23,338
30.10.2017, 22:28 #21
Что значит глобально? Ты его в классе описываешь или нет? Показывай.
0
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 296
30.10.2017, 22:32  [ТС] #22
Цитата Сообщение от nmcf Посмотреть сообщение
Что значит глобально? Ты его в классе описываешь или нет? Показывай.
Я не совсем понял о чём вы, но весь основной код лежит у меня в .h файле, где конструктор с формой...

Добавлено через 1 минуту
Глобально для меня, это что-бы объект был доступен во всех ф-циях...
0
nmcf
6238 / 5550 / 2525
Регистрация: 14.04.2014
Сообщений: 23,338
30.10.2017, 22:48 #23
У тебя же там есть класс MyForm. В нём объявлено? Или рядом с Main()?
0
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 296
30.10.2017, 22:48  [ТС] #24
Скрин...
0
Миниатюры
Глобальный объект  
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 296
30.10.2017, 22:49  [ТС] #25
На скорей всего ужасный код не засматривайся
0
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 296
30.10.2017, 22:50  [ТС] #26
Вот ещё скрин
0
Миниатюры
Глобальный объект   Глобальный объект  
nmcf
6238 / 5550 / 2525
Регистрация: 14.04.2014
Сообщений: 23,338
30.10.2017, 22:55 #27
Вот это прочитай: http://www.cyberforum.ru/cpp-cli/thread159178.html#post1079681
Обычный std::vector попробуй.
0
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 296
31.10.2017, 18:53  [ТС] #28
nmcf, Я так уже пробовал, не прокатило Точнее красным подчёркнуто не было но при компиляции ошибку писало.
Кстати, я решил сделать тоже самое, только на C#. Можете перевести эту строку кода с с++ на C#:
C++
1
HANDLE H = CreateFileA(patch, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_POSIX_SEMANTICS, NULL);
Импорт везде разный...
C++
1
2
3
4
5
6
7
8
9
[DllImport("kernel32.dll", SetLastError = true)]
        static extern IntPtr CreateFile(
            string lpFileName, 
            uint dwDesiredAccess,
            uint dwShareMode, 
            IntPtr lpSecurityAttributes, 
            byte dwCreationDisposition,
            short dwFlagsAndAttributes, 
            IntPtr hTemplateFile);
0
nmcf
6238 / 5550 / 2525
Регистрация: 14.04.2014
Сообщений: 23,338
31.10.2017, 19:21 #29
Зачем? В C# свои возможности для работы с файлами.
0
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 296
31.10.2017, 19:35  [ТС] #30
Цитата Сообщение от nmcf Посмотреть сообщение
Зачем? В C# свои возможности для работы с файлами.
Это да, но так проще, да и после этого кода файл или папка становятся полностью недоступными(то есть ни прочитать ни изменить), а мне это и нужно(не хочется, что-бы кто-то случайно или нет удалил мой файлик...или узнал,что в нём...
0
nmcf
6238 / 5550 / 2525
Регистрация: 14.04.2014
Сообщений: 23,338
31.10.2017, 19:46 #31
Так как раз не проще. Стыковать неуправляемый и управляемый код. Тебе нужен вариант W, а не A как минимум.
0
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 296
31.10.2017, 20:06  [ТС] #32
Цитата Сообщение от nmcf Посмотреть сообщение
Тебе нужен вариант W, а не A как минимум.
Они ж почти одинаковые, просто А был проще, а работал так же, вот и выбрал его...
Цитата Сообщение от nmcf Посмотреть сообщение
Так как раз не проще. Стыковать неуправляемый и управляемый код.
Ну предложите свой вариант, с тем же результатом, что и мой код(запрет доступа к файлу).
0
nmcf
6238 / 5550 / 2525
Регистрация: 14.04.2014
Сообщений: 23,338
31.10.2017, 20:25 #33
В C# string - юникод, твой прототип тогда не соответствует, или его как-то по-особому надо писать.
Есть File.Open(), установи там нужные режимы.
0
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 296
31.10.2017, 20:53  [ТС] #34
Цитата Сообщение от nmcf Посмотреть сообщение
Есть File.Open(), установи там нужные режимы.
Ну так можно мне примерчик, работающий также как этот, только с File.Open?
Думаю в c# будет легко создать безразмерный массив с IntPtr, так что можно мне уже хоть что-то в виде кода? Либо перевод Createfile с c++, или пример с File.open
0
nmcf
6238 / 5550 / 2525
Регистрация: 14.04.2014
Сообщений: 23,338
31.10.2017, 21:13 #35
Пример чего? Открытия файла? Что не получается?
0
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 296
31.10.2017, 21:29  [ТС] #36
Как сделать тоже самое, что и с CreateFile, только через File.Open(код)

Добавлено через 6 минут
Файл разобрался:
C#
1
File.Open("файл", FileMode.Open, FileAccess.Read, FileShare.None);
Кстати, как его закрыть?
А как быть с папкой?
0
nmcf
6238 / 5550 / 2525
Регистрация: 14.04.2014
Сообщений: 23,338
31.10.2017, 21:33 #37
C#
1
FileStream fs = File.Open(path, FileMode.Open, FileAccess.Write, FileShare.None);
Флаги поставь, какие тебе нужны.

Добавлено через 2 минуты
Там есть Close(), а так он должен сам закрыться, когда объект уничтожится.
0
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 296
31.10.2017, 21:33  [ТС] #38
Как закрыть тоже разобрался:
C++
1
2
FileStream Fs = File.Open("afqk", FileMode.Open, FileAccess.Read, FileShare.None);
            Fs.Close();
Но как быть с папкой? (Скрин был получен через CreateFile)
0
Миниатюры
Глобальный объект  
nmcf
6238 / 5550 / 2525
Регистрация: 14.04.2014
Сообщений: 23,338
31.10.2017, 21:38 #39
Так же пробовал?
0
Zagadohnik37
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 296
31.10.2017, 21:42  [ТС] #40
Цитата Сообщение от nmcf Посмотреть сообщение
Так же пробовал?
Если бы не пробовал, не спрашивал бы
0
31.10.2017, 21:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2017, 21:42
Привет! Вот еще темы с решениями:

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

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

Как преобразовать ссылку на объект в указатель на этот объект?
Как преобразовать ссылку на объект в указатель на этот объект? Буду благодарен...

Основы: указатель на объект или объект, что выбрать?
Не до конца понимаю (или вообще не понимаю) когда лучше использовать указатель...


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

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

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