Странно Работает Класс.

Тема в разделе "MS Visual C++", создана пользователем maltsevvv, 28 дек 2014.

  1. maltsevvv

    maltsevvv New Member

    Регистрация:
    3 июл 2014
    Сообщения:
    4
    Симпатии:
    0
    Создал класс, который должен рисовать таблицу.

    Код (C++):
    #pragma once

    typedef struct tagSECTOR
    {
    int     Min;
    int     Max;
    } SECTOR;

    typedef struct tagGRIDHEDER
    {
    SECTOR  PaintSector;
    SECTOR  CentrSector;
    SECTOR  ResizeSector;
    BOOL    bVisible;
    } GRIDHEDER;

    class HederClass
    {
    public:
    HederClass();                               // constructor
    ~HederClass();                              // destructor
    void Paint(HDC);                            // отображает массив заголовков
    void ChangeVisibleArea(int, int, int, int); // пересчитывает параметры при изменении размеров окна
    void Recalc(void);

    private:
    SECTOR ColsVisibleArea, RowsVisibleArea;
    GRIDHEDER ColsHeder[COLS_COUNT];            //Структура для хранения информации о размерах столбцов
    GRIDHEDER RowsHeder[ROWS_COUNT];            //Структура для хранения информации о размерах строк
    int iColselection;
    };
    Методы - пока голые:
    Код (C++):
    HederClass::HederClass()
    {
    }

    HederClass::~HederClass()
    {
    }
    ...........

    Ничего пока не делал, кроме объявления класса:

    Код (C++):
    HederClass cHDR;
    Если значение COLS_COUNT или ROWS_COUNT ставлю небольшое, ну например 500, то программа нормально работает,
    если значение 10000, то после появления окна, программа зависает. В окне вывода пишет:
    Первый этап обработки исключения по адресу 0x01011697 в TestClass.exe: 0xC00000FD: Stack overflow (параметры: 0x00000000, 0x00272000).
    "TestClass.exe" (Win32). Загружено "C:\Windows\SysWOW64\ole32.dll". Невозможно найти или открыть PDB-файл.
    "TestClass.exe" (Win32). Загружено "C:\Windows\SysWOW64\clbcatq.dll". Невозможно найти или открыть PDB-файл.
    "TestClass.exe" (Win32). Загружено "C:\Windows\SysWOW64\oleaut32.dll". Невозможно найти или открыть PDB-файл.
    Первый этап обработки исключения по адресу 0x01011697 в TestClass.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00270000.
    Первый этап обработки исключения по адресу 0x01011697 в TestClass.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00270000.
    Первый этап обработки исключения по адресу 0x01011697 в TestClass.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00270000.
    ....

    В чём дело?

    С уважением Виктор.
     
Загрузка...

Поделиться этой страницей