创建 WApplication 对象时出现 Wt C++ 严重错误

Wt c++ critical error when creating WApplication object

我的 Wt 网络应用程序有问题。这是一个相当简单的应用程序,我不需要将它部署在任何外部服务器上(仅本地主机),因此框架提供的内置 whttpd 服务器足以满足我的需求。我在发布模式 (Visual Studio 2015) 中创建了一个可执行文件,运行 它,当我在浏览器中打开 localhost:8080 以访问应用程序时,出现错误。然而在调试模式下一切正常。

调试控制台显示:

Exception thrown at 0x00007FFB08477788 in Neural_network_visualisation.exe: Microsoft C++ exception: std::runtime_error at memory location 0x00000025E30FB408.

Critical error detected c0000374

Neural_network_visualisation.exe has triggered a breakpoint.

main.cpp

#include "MyApplication.h"
#include "MyContainerWidget.h"

WApplication *createApplication(const WEnvironment& env) //exception is thrown here
{
    Wt::WApplication *app = new Wt::WApplication(env); //error c0000374
    app->setCssTheme("polished");
    new MyContainerWidget(app->root());

    return app;
}

int main(int argc, char **argv)
{
    return WRun(argc, argv, &createApplication);
}

刚进入createApplication函数就抛出异常,但程序并没有在那里崩溃。执行第一行后显示严重错误,应用程序停止。

代码很简单,我看不出有什么问题。我的猜测是发布模式需要一些特殊的配置才能与 Wt 一起使用,但是官方文档没有提到在使用内置 http 服务器时还需要​​什么。有 Wt 经验的人可以帮助我吗?

编辑 1:

我更改了我的代码,使其看起来像这样:

#include "MyApplication.h"
#include "MyContainerWidget.h"

WApplication *createApplication(const WEnvironment& env)
{
    //Wt::WApplication *app = 
//  app->setCssTheme("polished");
    //new MyContainerWidget(app->root());

    return new Wt::WApplication(env);;
}

int main(int argc, char **argv)
{
    return WRun(argc, argv, &createApplication);
}

现在错误不同了,状态是:

HEAP[Neural_network_visualisation.exe]: Invalid address specified to RtlValidateHeap( 000002A04F550000, 000002A05117F060 )

所以这是一个内存管理问题。在调试模式下,此管理的工作方式与发布时完全不同,这就是为什么我在调试时没有收到任何错误。不幸的是,我仍然不知道如何解决这个问题。有什么想法吗?

问题已解决。我仍然不能确切地说出是什么原因,但我重新编译了 Wt 和 Boost 库并更改了项目属性以与 Wt 示例相匹配。我还必须将构建类型从 x64 更改为 x86。现在可以使用了。