Дошел до главы 12 (Програмирование,принципы и практика использования) , раздел вывод на экран. Код у него немного переделан под свой лад,для чего у него сделаны свои заголовочные файлы. Ок,скачал с сайта,включил в проект,установил FLTK, проверил FLTK - работает. Собственно на первой же строке кода из книги- работа закончилась.
Ошибка 1 error LNK2001: неразрешенный внешний символ ""protected: virtual void __thiscall Graph_lib::Window::draw(void)" (?draw@Window@Graph_lib@@MAEXXZ)"
C:\Users\WTF\documents\visual studio 2013\Projects\ConsoleApplication2\testing\testing.obj testing
Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Simple_window::Simple_window(struct Point,int,int,class std::basic_string<char,struct std::char_traits<char>,
class std::allocator<char> > const &)" (??0Simple_window@@QAE@UPoint@@HHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) в
функции _main C:\Users\WTF\documents\visual studio 2013\Projects\ConsoleApplication2\testing\testing.obj testing
Вопрос - в чем проблема может быть? Думал не хватает какого то объявления - посмотрел.все файлы на месте,объявления вроде тоже.
Не знаю как удобнее выложить код,ибо файлов включаемых несколько. Вот куски кода объявлений функций,указанных в ошибке:
Simple_window (Simple_window.h) :
using namespace Graph_lib;
struct Simple_window : Graph_lib::Window {
Simple_window(Point xy, int w, int h, const string& title );
bool wait_for_button(); // simple event loop
private:
Button next_button; // the "next" button
bool button_pushed; // implementation detail
static void cb_next(Address, Address); // callback for next_button
void next(); // action to be done when next_button is pressed
};
Simple_window (Simple_window.cpp):
Simple_window::Simple_window(Point xy, int w, int h, const string& title) :
Window(xy,w,h,title),
next_button(Point(x_max()-70,0), 70, 20, "Next", cb_next),
button_pushed(false)
{
attach(next_button);
}
Simple_window наследуется от Window, его код из .h и .cpp соответственно:
class Window : public Fl_Window {
public:
// let the system pick the location:
Window(int w, int h, const string& title);
// top left corner in xy
Window(Point xy, int w, int h, const string& title);
virtual ~Window() { }
int x_max() const { return w; }
int y_max() const { return h; }
void resize(int ww, int hh) { w=ww, h=hh; size(ww,hh); }
void set_label(const string& s) { copy_label(s.c_str()); }
void attach(Shape& s) { shapes.push_back(&s); }
void attach(Widget&);
void detach(Shape& s); // remove s from shapes
void detach(Widget& w); // remove w from window (deactivates callbacks)
void put_on_top(Shape& p); // put p on top of other shapes
protected:
void draw();
private:
vector<Shape*> shapes; // shapes attached to window
int w,h; // window size
void init();
};
Window::Window(int ww, int hh, const string& title)
:Fl_Window(ww,hh,title.c_str()),w(ww),h(hh)
{
init();
}
Window::Window(Point xy, int ww, int hh, const string& title)
:Fl_Window(xy.x,xy.y,ww,hh,title.c_str()),w(ww),h(hh)
{
init();
}
void Window::init()
{
resizable(this);
show();
}