Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

помогите начинающему, please !!!

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Михал
Гость





СообщениеДобавлено: Пн Май 26 2003 17:20    Заголовок сообщения: помогите начинающему, please !!! Ответить с цитатой

Знаю, как создавать глобальные переменные в консольном приложении (просто описать их перед main). Теперь, сделал такую же программу с помощью AppWizard на VC из Microsoft Visual Studio . Данные из одного диалогового окна в другое нужно передавать через глобальную переменную. В project.cpp есть - CProjectApp theApp; Я добавил в определение класса CProjectApp переменную нужного мне типа, после обратился к ::theApp. (theApp)тоже пробовал. Компилятор выдал ошибку - нет такой глобальной переменной. Пробовал пошагово - процесс начинается с _tWinMain. Но не менять же библтотеку. Знаю, что вопрос элементарный, но в чем же дело?Заранее благодарю за помощь.
Вернуться к началу
GREA



Зарегистрирован: 14.05.2003
Сообщения: 758
Откуда: Новосибирск

СообщениеДобавлено: Пн Май 26 2003 20:24    Заголовок сообщения: На делфе это решается: файл/использовать модуль, может и на VC такое есть(--) Ответить с цитатой

--
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Борис
Гость





СообщениеДобавлено: Вт Май 27 2003 13:37    Заголовок сообщения: Re: помогите начинающему, please !!! Ответить с цитатой

Модуль А:
int abc; // должно быть _не_ внутри функции

Модуль Б:
external int abc; // должно быть _не_ внутри функции

Модуль В:
external int abc; // должно быть _не_ внутри функции

и т. д.
Вернуться к началу
POL
Гость





СообщениеДобавлено: Ср Май 28 2003 15:15    Заголовок сообщения: Re: помогите начинающему, please !!! Ответить с цитатой

Если я правильно понял, то эту глобальную переменную надо использовать в функции в другом классе и ДРУГОМ ФАЙЛЕ? Об этом говорит
"Данные из одного диалогового окна в другое ..." И если все же использовать глобальные переменные, то можно например так.
В файле с классом первого диалога пишем:
/*
* Dlg1.cpp
*/
#include "Dlg1.h"
....
int MyGlobalValue = 0; // забиваем память под переменную, тип int - чисто для примера; описание переменной идет ВНЕ всякой функции
....
void Dlg1::AnyFunc(
....
MyGlobalValue = AnyIntValueIn1;
....
}

В заголовочном файле
/*
* Dlg1.h
*/
....
extern int MyGlobalValue; // просто говорим, что есть некто по имени MyGlobalValue
....

Тогда в файле с классом второго диалога пишем:
/*
* Dlg2.cpp
*/
#include "Dlg1.h"
....
void Dlg2::AnyFunc(
....
AnyIntValueIn2 = MyGlobalValue; // в Dlg1.h компилятору объяснили, что есть такой MyGlobalValue и он целый
....
}
Вот и все. Вообще-то я противник использования глобальных переменных, но если уж никак посоветовал бы свести их все в одном CPP-файле, а сслыки на них в одном H-файле:
/*
* MyGlobals.Cpp
*/
int iGlbVal1 = 0;
char zsPass[100] = "Сам такой!!!";
...

/*
* MyGlobals.H
*/
extern int iGlbVal1;
extern char zsPass[100];

MyGlobals.Cpp включается в проект, а строка
#include "MyGlobals.H"
- в любой файл, где требуется доступ к глобальным переменным. Поскольку часто проблеммы с глобальными переменными вызываются тем, что программист забыл их проинициализировать, такой подход позволит свести проверку инициированности переменных к просмотру файла MyGlobals.Cpp. Строку
#include "MyGlobals.H"
можно добавить даже в MyGlobals.Cpp:
/*
* MyGlobals.Cpp
*/
#include "MyGlobals.H"

int iGlbVal1 = 0;
char zsPass[100] = "Сам такой!!!";
...

В этом случае, если изменен тип глобальной переменной в CPP-файле, а в H-файле забыли, то компилятор ругнется - исправляем и ВСЕ файлы проекта, использующие наши глобальные переменные ВСЕГДА знают ПРАВИЛЬНЫЕ описатели таких переменных.
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...