Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.15.143.207] |
|
Сообщ.
#1
,
|
|
|
В общем проект состоит из кучи файлов(MFC dialog based)
как и где обьявить переменную чтобы она была видна во всех модулях и могла использоваться любым окном порожденным основным окном( ну или по цепочке) пытался обьявить ее в основном модуле а потом ссылаться через extern = куча ошибок линковщика о переопределении(что вроде естественно) пытался описать ее непосредственно в описании основного класса приложения и изменять ее через функции: BOOL variable; static void SetVariable(BOOL v) { variable=v; return; } ...... а потом в любом месте вызывать CMyApp::SetVariable(true); опять ошибка о применении нестатической переменной в статической функции... Може вообще это не так делается? |
Сообщ.
#2
,
|
|
|
=потом ссылаться через extern = куча ошибок линковщика о переопределении(что вроде естественно) =
Сколько многомодульных прог писал не знал, extern вызывает ошибки линковщика. Правда никогда не писал на MFC. Но я думаю, что от всяких библиотек не зависит. Скорее всего ты сам неправильно записываешь переменные в extern. Например типичная ошибка переопределния: в первом модуле char Str[MAX_PATH]; а в других модулях должно быть extern char Str[]; Типа того же со структурами и массивами одномерными и многомерными. |
Сообщ.
#3
,
|
|
|
Я делал так:
В файле MyApp.cpp Объявляю глобальную переменную (массив) int g_iTime[] = { 0, 1, 2, 3, 4}; В файле MyApp.h extern int g_iTime[]; Удачи. |
Сообщ.
#4
,
|
|
|
Все понятно, спасибо! :)
|