Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
romio
Сообщений: n/a
#1

Где хранить глобальную переменную для всех представлений? - C++

23.09.2007, 14:06. Просмотров 1341. Ответов 6
Метки нет (Все метки)

я делаю MDI приложение с использованием БД

мне нужно чтобы при запуске открывалась БД (CDatabase)
а потом все формы использовали бы эту БД, чтобы не соединяться кажный раз при открытии новой формы

Но вот вопрос где хранить эту переменную?

я пробовал в главном приложении и инициализировал её в
InitInstance -получается
НО может быть можно как-то лучше это делать и по другому
А КАК? помогите пожалуста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2007, 14:06     Где хранить глобальную переменную для всех представлений?
Посмотрите здесь:

Как и где описать глобальную переменную? - C++
Как и где описать глобальную переменную? В главном класее я определяю указутель на CDaoDatabase CDaoDatabase* DBase; DBase = new...

Немогу объявить глобальную переменную - C++
В пустом заголовочном файле пишу int some_global_variable; и компилятор выдает ошибку hand.obj : error LNK2005: "int...

Как создать глобальную переменную? - C++
Создаю небольшой проект. Несколько функций и собственно тело программы. В теле объявил переменную int rep. Далее мне надо обратиться к ней...

Как обьявить глобальную переменную - C++
Как объявить глобальную переменную Есть несколько *CPP* и *.h* файлы. Надо объявить переменную HWND hwnd чтобы она была доступна в...

Как правильно создать глобальную переменную? - C++
Как правильно создать глобальную переменную? Если она будет в заголовочном файле, то при подключении этого файла к другим cpp, эта...

Как лучше сделать глобальную переменную? - C++
Интернет совсем пустой в плане глобальных переменных на с++ Задача следующая: 1. Нужно создать много глобальных переменных будет...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
24.09.2007, 16:10     Где хранить глобальную переменную для всех представлений? #2
Я бы порекомендовал следовать идеологии Document/View от Microsoft/MFC. То есть хранить ее в CMyAppDocument или как там оно называется (класс, производный от CDocument)...

С уважением, Владимир.
romio
Сообщений: n/a
24.09.2007, 17:13     Где хранить глобальную переменную для всех представлений? #3
Дело в том что я делаю приложение MDI

и хочу, чтобы оно было доступно для всех представлений. Это возможно, если хранить его в объекте документе как вы говорите?

как я уже сказал я пробовал его хранить в объекте-приложении
(и вытаскиваю (МоёПриложение*)AfxGetApp()->МояПеременная) и это работает.

НО меня интересует может это можно сделать как-то правильнее и лучше??

Кто может ответить на этот вопрос?
KYG
0 / 0 / 0
Регистрация: 30.08.2007
Сообщений: 19
24.09.2007, 17:26     Где хранить глобальную переменную для всех представлений? #4
A to, chto skazal boombastik - ochen' dazhe pravilno. Ne nado izobretat' velosiped.

KYG.
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
24.09.2007, 17:26     Где хранить глобальную переменную для всех представлений? #5
На самом деле MDI - Multi-Document Interface. Это подразумевает, что в этом приложении существует возможность ОДНОВРЕМЕННОГО открытия множества документов. В вашем же случае, если к примеру за документ взять БД, получается упрощенная модель MDI, но это не мешает использовать все ту же модель от MFC - Document/View.
Пусть у вас будет один документ с настройками и объектом CDatabase (проще кстати будет скидывать эти настройки в файл...). Вам остается только связать все создаваемые представления (наследников CChildView) с активным документом...

По моему должно работать замечательно, это получается как бы множество взглядов на одну и ту же ... проблему

Хотя с другой стороны - Вы разработчик, Вам и флаг в руки - начальству ведь все равно, что внутри лишь бы работало...

Удачи, Владимир.
Chuck
Сообщений: n/a
24.09.2007, 18:29     Где хранить глобальную переменную для всех представлений? #6
И так работает тоже:
В StdAfx.h определяешь
extern CString dbname;

А в классе CXXXApp:
CString dbname;

И дальше эта переменная становится глобальной и появляется в папке Globals
С уважением, Виталий
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2007, 12:26     Где хранить глобальную переменную для всех представлений?
Еще ссылки по теме:

Как обьявить глобальную переменную в функции? - C++
Вопрос как объявить переменную в функции чтобы ей можно было пользоваться везде?

Как сделать одну глобальную переменную - C++
Есть многофайловый проект. К примеру 5 файлов(5 "H" файлов+для них 5 "срр" файлов, пускай в каждом файле будет лежать класс) и есть...

Как объявить глобальную переменную в Dev-C++ 4.9.9.2? - C++
Попробовал написать из справочника по С++ такую программу: #include <iostream> #include <windows.h> using namespace std; void...

Как глобальную переменную засунуть в структуру? - C++
#include<stdio.h> #include<malloc.h> #include<string.h> typedef struct Item { char *info; struct Item *next; ...


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

Или воспользуйтесь поиском по форуму:
romio
Сообщений: n/a
25.09.2007, 12:26     Где хранить глобальную переменную для всех представлений? #7
Я понял вас Владимир.

Но тогда другой вопрос:
В MDI приложении две разные формы(представления) могут одно временно работать с одним документом?

Если могут то как это делается?
-Как обычно присоеденяются шаблоны в InitInstance
или как-то особенно?
Yandex
Объявления
25.09.2007, 12:26     Где хранить глобальную переменную для всех представлений?
Ответ Создать тему
Опции темы

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