Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Работал ли кто-нибудь с шаблонами на ARM C++ Keil? Нужна помощь!!!
Отправлено
Yaumen 02 апреля 2009, г. 09:41
Пытаюсь написать класс по типу очереди сообщений на отправку через UART, CAN и т.д. Так для разных каналов связи размерность очереди будет разная, то решил применить шаблон для класса:
//queue.h
template<int MAX_SIZE> CQueue
{
public:
int GetMsg(BYTE * lpData, WORD wLength);
protected:
BYTE m_byBuffer[MAX_SIZE];
};
//queue.cpp
template<int MAX_SIZE>int CQueue<MAX_SIZE>::GetMsg(BYTE * lpData, WORD wLength)
{
BYTE * lpDest = (BYTE*)m_nBuffer;
while (wLength)
{
*lpData++ = *lpDest++;
wLength--;
};
}
Этот код ТОЛЬКО ПРИМЕР и его содержательность критиковать не надо :))
Все нормально компилируется. Теперь пытаемся его использовать
//can.h
class CCan
{
public:
void Init();
BYTE m_Data[256];
};
//can.cpp
CQueue<1024> m_TxQueue;
void CCan::Init()
{
m_TxQueue.GetMsg((BYTE*)m_Data, 256);
}
В результате при компиляции получаю следующую ошибку:
.\Debug\ModulCpu.axf: Error: L6218E: Undefined symbol CQueue<(int)1024>::GetMsg(unsigned char*, unsigned) (referred from can.o).
В чем может быть проблема?
Составить ответ | Вернуться на конференцию.
Ответы