Poco Application 框架学习(1)

基本的功能:
提供了一个 int run(int argc, char** argv); 方法用于执行app。run 方法会调用 类的 void initialize(Application& self);与 int main(const std::vector& args)
与 void uninitialize(); 方法。run() 函数调用的开始,main 函数是多态的。initialize() 和 uninitialize() 是覆盖,而且必须指定调用基类的方法,用于初始化,或者析构子
系统的资源。也就是说我们自己的类的initialize() 需要调用基类的 initialize() ,uninitialize() 需要调用基类的 uninitialize()
app程序的初始化部分放到重载后的 initilize() 方法执行。
app 退出的释放部分放到 uninitialize()。
程序的功能部门包含到重载的 main()
例子代码:

#include "Poco/Poco.h"
#include "Poco/Util/Application.h"
#include "Poco/Util/Option.h"
#include "Poco/Util/OptionSet.h"
#include <iostream>

using namespace Poco;

class MyApplication : public Util::Application
{
public:
    MyApplication( )
    { }
    void initialize(Application& self);
    void uninitialize( );
    int main(const std::vector<std::string>& args);
};

void MyApplication::initialize( Application& self )
{
    Util::Application::initialize( self );//帮我们初始化子系统,必须显示的调用。
    std::cout << "this is initialize\n";
}

void MyApplication::uninitialize( )
{
    Util::Application::uninitialize( );//帮我们关闭子系统,必须显示的调用。
    std::cout << "this is uninitialize\n";
}

int MyApplication::main(const std::vector<std::string>& args)
{
    std::cout << "this is main\n";
    return Application::EXIT_OK;
}

///////////////////////////////////主函数////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
int main( int argc , char **argv )
{
    MyApplication app;
    app.run( );
}

执行结果:
this is initialize
this is main
this is uninitialize

总结:
从结果可以看出来run() 调用顺序是 initialize() -> main() -> uninitialize()。
有了这些功能我们一个基本的程序就可以运行了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值