Показать сообщение отдельно
  (#1 (permalink)) Старый
maltsevvv maltsevvv вне форума
Новичок
 
Сообщений: 4
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.07.2014
По умолчанию Странно работает класс. - 28.12.2014, 18:38

Создал класс, который должен рисовать таблицу.

cpp Код:
#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;
};

Методы - пока голые:

cpp Код:
HederClass::HederClass()
{
}

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

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

cpp Код:
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.
....

В чём дело?

С уважением Виктор.
Ответить с цитированием
Ads