【发布时间】:2016-07-11 16:33:53
【问题描述】:
我已将 Wt 3.3.1 二进制文件安装到 Windows 10 并与 VS2015 一起使用。我还安装了 boost 1.53。每次我尝试运行以下示例时,root() 函数总是返回 0xFFFFFFFF,而我无法使用 root():
WebApplication.cpp:
#include "stdafx.h"
#include "application.h"
HelloApplication::HelloApplication(const WEnvironment& env)
: WApplication(env)
{
setTitle("Hello world");
root()->addWidget(new WText("Hey guys, welcome back!"));
}
WApplication *createApplication(const WEnvironment& env)
{
return new HelloApplication(env);
}
应用程序.h:
#include "stdafx.h"
#include <Wt/WApplication>
#include <Wt/WBreak>
#include <Wt/WContainerWidget>
#include <Wt/WLineEdit>
#include <Wt/WPushButton>
#include <Wt/WText>
#include <Wt/WServer>
#include <Wt/WException>
// c++0x only, for std::bind
// #include <functional>
using namespace Wt;
/*
* A simple hello world application class which demonstrates how to react
* to events, read input, and give feed-back.
*/
class HelloApplication : public WApplication
{
public:
HelloApplication(const WEnvironment& env);
private:
};
WApplication *createApplication(const WEnvironment& env);
应用程序.cpp:
#include "stdafx.h"
#include "application.h"
int main(int argc, char **argv)
{
return WRun(argc, argv, &createApplication);
}
当我不使用 root() 时它可以工作,例如当我单独离开 setTitle("...") 而没有 root()-addWidget(...) 它可以工作,设置页面标题但是当与 root() 一致,它崩溃并显示一条消息:“widgetRoot 为 0xFFFFFFFF”。有人可以帮忙吗?谢谢
【问题讨论】:
-
什么是
root()?提供root()的代码。 -
如果
root()与某些父窗口小部件引用相关,则可能不应该使用它,因为在这种情况下可能未定义此类父窗口小部件。 -
返回NULL,还是返回0xFFFFFFFF?