[an error occurred while processing this directive]
Помогите разобраться с С++(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено GPP 21 октября 2005 г. 12:07

С++ только начал изучать, так что сильно не пинайте.

Подскажите, как правильно в С++ инициализировать структуру,
содержащую указатели на функцию.


extern "C"
{
typedef void (*T_FPTR)(void); // указатель на функцию
}

void MainFunc(void);

char __flash _str1_CRTC[] = "xxxxxxxxxxxxxxxx";
char __flash _str2_CRTC[] = "zzzzzzzzzzzzzzzz";

class MENU; // предварительная декларация

class MENU // базовый класс
{
public:

struct TMenuItem
{
char __flash *Text1; // указатель на 1 строку меню
char __flash *Text2; // указатель на 2 строку меню
T_FPTR Exec; // указатель на функцию обработки меню
T_FPTR Exit; // указатель на функцию, в которую нужно вернуться
int __eeprom *Arg1; // аргумент 1
int Param1; // параметр 1
int Param2; // параметр 2
int __eeprom *Arg2; // аргумент 2
int __eeprom *Arg3; // аргумент 3
};

TMenuItem __flash *p;
virtual void ShowMenu(void);
};

class RTC : public MENU
{
public:
RTC();
void ShowMenu();
private:
enum eRTC{channel1, channel2, channel3, tcm50, tcm100, tcp50, tcp100};

void SelChannel(void);
void SelectTypeTC(void);
void Calibr(void);
};

RTC::RTC()
{
}

RTC::TMenuItem __flash MenuRTC[] =
{
_str1_CRTC,
_str2_CRTC,
SelChannel, // <- в этом месте компилятор выдает ошибку:
// Error[Pe020]: identifier "SelChannel" is undefined

MainFunc,
0,
0,
0,
0,
0,
};

void RTC::ShowMenu()
{
p = MenuRTC;
.....
}

void RTC::SelChannel(void)
{
}

void RTC::SelectTypeTC(void)
{
}

void RTC::Calibr(void)
{
}


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru