В настоящее время я пытаюсь познакомиться с Webtoolkit от Emweb (Wt или "Witty). В качестве своего первого проекта я решил написать риторическую домашнюю страницу компании. Но когда я попытался реализовать какую-то систему управления контентом, Visual Studio Поведение стало совершенно странным. Было много ошибок, все естественно, поэтому я закомментировал все строки кода до минимума, чтобы заставить его скомпилировать и выяснить мою ошибку. Я слепой или его просто нет? код моих 3 объектов, строка, вызывающая ошибку, прокомментирована:
main.cpp:
int main(int argc, char *argv[]) {
return Wt::WRun(argc, argv, [](const Wt::WEnvironment &env) {
auto app = std::make_unique<Wt::WApplication>(env);
//>>loading layout.xml for page-layout
app->messageResourceBundle().use("approot/layout");
app->messageResourceBundle().use("approot/strings_de");
//>>loading strings_de.xml for messages
app->useStyleSheet("docroot/style.css");
//>>loading style.css for used stylesheet
app->root()->addNew<TLayout>();
return app;
});
}
CHeadline.h:
class CHeadline : public WContainerWidget
{
public:
CHeadline();
private:
WImage* Game_Logo;
WImage* Corner_Image;
};
CHeadline.cpp:
#include "CHeadline.h"
CHeadline::CHeadline()
{
this->setStyleClass("headline");
Game_Logo = addWidget(make_unique<WImage>("image/game_logo.png"));
Game_Logo->setStyleClass("logo");
Corner_Image = addWidget(make_unique<WImage>("image/right_corner.png"));
Corner_Image->setStyleClass("img_hl");
}
CNavbar.h:
class CNavbar : public Wt::WContainerWidget
{
public:
CNavbar();
~CNavbar();
private:
WPushButton* b_news;
WPushButton* b_webdev;
WPushButton* b_projects;
WPushButton* b_media;
WPushButton* b_shop;
WPushButton* b_about;
};
CNavbar.cpp:
CNavbar::CNavbar()
{
this->setStyleClass("navbar");
//INIT_BUTTONS:*****///
b_news = addWidget(make_unique<WPushButton>(tr("str.news")));
b_webdev = addWidget(make_unique<WPushButton>(tr("str.webdev")));
b_projects = addWidget(make_unique<WPushButton>(tr("str.projects")));
b_media = addWidget(make_unique<WPushButton>(tr("str.media")));
b_shop = addWidget(make_unique<WPushButton>(tr("str.shop")));
b_about = addWidget(make_unique<WPushButton>(tr("str.about")));
}
А вот Layout-Template, который объединяет все:
TLayout.h:
class TLayout : public WTemplate
{
public:
TLayout();
~TLayout();
enum SECTION { NEWS, DEV, PROJ, MEDIA, SHOP, CONTACT };
void setSection(SECTION aSec);
private:
//Adding Widget for the Headline (Logo + Corner Image)
CHeadline* wHeadline;
CNavbar* wNavbar; //PROBLEM-LINE
SECTION currentSec;
};
TLayout.cpp:
TLayout::TLayout() : WTemplate { tr("tpl.layout") }
{
currentSec = NEWS; //Standard-Wert für Section
this->setStyleClass("bglayout");
wHeadline = bindWidget("HEADLINE", make_unique<CHeadline>());
wNavbar = bindWidget("NAVIGATION", make_unique<CNavbar>()); //PROBLEM?
}
void TLayout::setSection(SECTION aSec) {
}
Учитывая, что все Включения и Пространства имен правильные, почему он не скомпилируется? Visual Studio выдает мне следующие ошибки:
tlayout.h (38): Unexpected Token before ";"
tlayout.h (38): Syntaxerror. ";" missing before "*"
tlayout.h (38): Missing Type-Specification