На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> О локальных и глобальных переменных
    В общем проект состоит из кучи файлов(MFC dialog based)
    как и где обьявить переменную чтобы она была видна во всех модулях и могла использоваться любым окном порожденным основным окном( ну или по цепочке)
    пытался обьявить ее в основном модуле а потом ссылаться через extern = куча ошибок линковщика о переопределении(что вроде естественно)
    пытался описать ее непосредственно в описании основного класса приложения и изменять ее через функции:
    BOOL variable;
    static void SetVariable(BOOL v)
    {
     variable=v;
     return;
    }
    ......
    а потом в любом месте вызывать
    CMyApp::SetVariable(true);
    опять ошибка о применении нестатической переменной в статической функции...
    Може вообще это не так делается?
      =потом ссылаться через extern = куча ошибок линковщика о переопределении(что вроде естественно) =

      Сколько многомодульных прог писал не знал, extern вызывает ошибки линковщика. Правда никогда не писал на MFC. Но я думаю, что от всяких библиотек не зависит. Скорее всего ты сам неправильно записываешь переменные в extern.
      Например типичная ошибка переопределния:
      в первом модуле
      char Str[MAX_PATH];

      а в других модулях должно быть extern char Str[];

      Типа того же со структурами и массивами одномерными и многомерными.
        Я делал так:

        В файле MyApp.cpp

        Объявляю глобальную переменную (массив) int     g_iTime[] = { 0, 1,  2, 3, 4};

        В файле MyApp.h
        extern int g_iTime[];


        Удачи.
          Все понятно, спасибо!  :)
          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0175 ]   [ 15 queries used ]   [ Generated: 18.05.24, 09:34 GMT ]