Я определяю wxObjArray в моем TMainFrame.h
следующим образом:Как правильно включить wxObjArray?
#ifndef __TMainFrame__
#define __TMainFrame__
#include "MyApp_gui.h"
//// end generated include
#include "TRunThread.h"
#include <wx/dynarray.h>
class TMove;
WX_DECLARE_OBJARRAY(TMove, TMoveArray);
/* ...Class TMainFrame... */
/* ...Class TMove... */
#endif // __TMainFrame__
Теперь я хочу использовать класс TMoveArray созданный WX_DECLARE_OBJARRAY в моем TRunThread.h
. Но этот класс не может быть найден (GCC: 'TMoveArray' не был объявлен)
#ifndef TRUNTHREAD_H_INCLUDED
#define TRUNTHREAD_H_INCLUDED
#include <wx/wx.h>
#include "TMainFrame.h"
// doesn't work: WX_DECLARE_OBJARRAY(TMove, TMoveArray);
class TRunThread : public wxThread
{
public:
wxThreadError Create(TMoveArray moves);
};
#endif // TRUNTHREAD_H_INCLUDED
Исходный файл TRunThread.cpp
:
#include <wx/arrimpl.cpp> // this is a magic incantation which must be done!
WX_DEFINE_OBJARRAY(TMoveArray);
#include "TRunThread.h"
/* ...Code... */
Я также попытался с WX_DEFINE_OBJARRAY
директивы.
Вопрос: Как правильно включить wxObjArray?
Какая ошибка компилятора? Вы читали dynarray.h о том, как использовать WX_DECLARE_OBJARRAY - вы не упомянули arrimpl.cpp? – tinman
Я обновил свой пост. Я включаю arrimpl.cpp в свои исходные файлы (TMainFrame.cpp и TRunThread.cpp). – ComFreek