Сообщение Re: Экземляр класса на шаблоне CMap как поле другого класса от 30.07.2016 13:27
Изменено 30.07.2016 13:30 AlexGin
Здравствуйте, Melamed, Вы писали:
M>Пишу наследник класса СТreeItem для расширения стандартного класса, управляющего стандартным органом управления TreeView на диалоговой понели.
M>Мне желательно в моем проектируемом классе иметь поле какого-либо из двух типов: либо
M>
M>либо
M>
Я бы отдал предпочтение второму варианту: std::map<>
M>Но когда объявляю поле типа THScrolMap, объявленным одним из вышеупомянутом способом программа падает в отладочном режиме. В режиме Release программа не падает, но и некий код работает не правильно. Но в этом режиме нельзя пошагово выполнить этот участок кода.
Обычно — в таких местах делаю логирование (сохраняю всё в лог-файл).
M>Никто не подскажет что я делаю не так.
Здесь нет полной информации, поэтому что-либо сказать трудно...
M>Среда разработки MFC C++ MSVS 6 — требование к совместимости к системе, куда моя программа встраивается.
Хорошо, я не говорю про то, куда встраивается, но возможно же (для эксперимента) — запустить этот код на более поздней MSVS.
Там будет повторение ситуации или нет?
M>Пишу наследник класса СТreeItem для расширения стандартного класса, управляющего стандартным органом управления TreeView на диалоговой понели.
M>Мне желательно в моем проектируемом классе иметь поле какого-либо из двух типов: либо
M>
M>typedef CMap<HTREEITEM,HTREEITEM,int,int> THScrollMap
M>
M>либо
M>
M>typedef std::map<HTREEITEM,int> THScrollMap
M>
Я бы отдал предпочтение второму варианту: std::map<>
M>Но когда объявляю поле типа THScrolMap, объявленным одним из вышеупомянутом способом программа падает в отладочном режиме. В режиме Release программа не падает, но и некий код работает не правильно. Но в этом режиме нельзя пошагово выполнить этот участок кода.
Обычно — в таких местах делаю логирование (сохраняю всё в лог-файл).
M>Никто не подскажет что я делаю не так.
Здесь нет полной информации, поэтому что-либо сказать трудно...
M>Среда разработки MFC C++ MSVS 6 — требование к совместимости к системе, куда моя программа встраивается.
Хорошо, я не говорю про то, куда встраивается, но возможно же (для эксперимента) — запустить этот код на более поздней MSVS.
Там будет повторение ситуации или нет?
Re: Экземляр класса на шаблоне CMap как поле другого класса
Здравствуйте, Melamed, Вы писали:
M>Пишу наследник класса СТreeItem для расширения стандартного класса, управляющего стандартным органом управления TreeView на диалоговой понели.
M>Мне желательно в моем проектируемом классе иметь поле какого-либо из двух типов: либо
M>
M>либо
M>
Я бы отдал предпочтение второму варианту: std::map<>
M>Но когда объявляю поле типа THScrolMap, объявленным одним из вышеупомянутом способом программа падает в отладочном режиме. В режиме Release программа не падает, но и некий код работает не правильно. Но в этом режиме нельзя пошагово выполнить этот участок кода.
Обычно — в таких местах делаю логирование (сохраняю всё в лог-файл), затем анализурую что где и как отрабатывало.
Логирование ставлю часто — так, как будто это те же breakpoint-ы.
Это логирование — только на момент поиска источника проблемы!
M>Никто не подскажет что я делаю не так.
Здесь нет полной информации, поэтому что-либо сказать трудно...
M>Среда разработки MFC C++ MSVS 6 — требование к совместимости к системе, куда моя программа встраивается.
Хорошо, я не говорю про то, куда встраивается, но возможно же (для эксперимента) — запустить этот код на более поздней MSVS.
Там будет повторение ситуации или нет?
M>Пишу наследник класса СТreeItem для расширения стандартного класса, управляющего стандартным органом управления TreeView на диалоговой понели.
M>Мне желательно в моем проектируемом классе иметь поле какого-либо из двух типов: либо
M>
M>typedef CMap<HTREEITEM,HTREEITEM,int,int> THScrollMap
M>
M>либо
M>
M>typedef std::map<HTREEITEM,int> THScrollMap
M>
Я бы отдал предпочтение второму варианту: std::map<>
M>Но когда объявляю поле типа THScrolMap, объявленным одним из вышеупомянутом способом программа падает в отладочном режиме. В режиме Release программа не падает, но и некий код работает не правильно. Но в этом режиме нельзя пошагово выполнить этот участок кода.
Обычно — в таких местах делаю логирование (сохраняю всё в лог-файл), затем анализурую что где и как отрабатывало.
Логирование ставлю часто — так, как будто это те же breakpoint-ы.
Это логирование — только на момент поиска источника проблемы!
M>Никто не подскажет что я делаю не так.
Здесь нет полной информации, поэтому что-либо сказать трудно...
M>Среда разработки MFC C++ MSVS 6 — требование к совместимости к системе, куда моя программа встраивается.
Хорошо, я не говорю про то, куда встраивается, но возможно же (для эксперимента) — запустить этот код на более поздней MSVS.
Там будет повторение ситуации или нет?