【问题标题】:Wt C++ root() Returns NullWt C++ root() 返回 Null
【发布时间】: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?

标签: c++ wt


【解决方案1】:

好的,我找不到预建库的解决方案。我的解决方案是下载 Wt 源代码,Boost 并用 CMake 编译它们。它仍然无法在调试模式下工作,但我现在至少有一个工作版本(发布)。

【讨论】:

  • 是的,当我尝试自己用 VS2015 编译 Wt 3 时遇到了类似的错误。
猜你喜欢
  • 2013-01-11
  • 2023-03-07
  • 1970-01-01
  • 2014-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多