我在使用网址映射的cppcms hello world example时遇到了问题。
我无法理解这一部分:
int main(int argc,char ** argv)
{
try {
cppcms::service srv(argc,argv);
srv.applications_pool().mount(
cppcms::applications_factory<hello>() //i do not understand this part
);
srv.run();
}
catch(std::exception const &e) {
std::cerr << e.what() << std::endl;
}
}
在教程中说/ hello - 将调用welcome函数,但这不是正在发生的事情。 而是调用此方法:
void hello::main(std::string /*url*/)
{
response().out() <<
"<html>\n"
"<body>\n"
" <h1>Hello World</h1>\n"
"</body>\n"
"</html>\n";
}
欢迎方法看起来像这样,它在hello类的范围内定义:
void welcome()
{
response().out() <<
"<h1> Welcome To Page with links </h1>\n"
"<a href='" << url("/number",1) << "'>1</a><br>\n"
"<a href='" << url("/number",15) << "'>15</a><br>\n"
"<a href='" << url("/smile") << "' >:-)</a><br>\n";
}
如果你能帮助我,我需要一些答案。我只是想了解,如果你能指出我正确的方向那就太棒了。
答案 0 :(得分:3)
您需要在hello构造函数中设置映射,如hello world示例和您在答案中发布的链接所示。
特别是这部分:
dispatcher().assign("",&hello::welcome,this);
mapper().assign("");
mapper().root("/hello");
这将hello应用程序的默认路由映射到“welcome”方法。如果您没有设置映射,它将默认为main。
答案 1 :(得分:0)
我个人对这个库并不了解,但它看起来像是在行:
cppcms::applications_factory<hello>()
您使用某种hello
课程来提示服务器并进行即时通讯。但是我