[an error occurred while processing this directive]
|
С++ только начал изучать, так что сильно не пинайте.
Подскажите, как правильно в С++ инициализировать структуру,
содержащую указатели на функцию.
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: info@telesys.ru