Poco Application 框架学习(1)

2023-05-16

基本的功能:
提供了一个 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()。
有了这些功能我们一个基本的程序就可以运行了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Poco Application 框架学习(1) 的相关文章

  • Flex 开发入门

    级别 初级 刘 庆 qlcdl cn ibm com 软件工程师 IBM 软件开发中心 2009 年 1 月 07 日 本文介绍 Flex 开发的基础知识 包括如何搭建开发环境 如何调试 以及如何建立和部署简单的
  • QT中实现应用程序的单例化

    一介绍 通过编写一个QSingleApplication类 来实现Qt程序的单例化 原文的作者是在Windows Vista Qt4 4 下实现的 不过应用在其他平台上是没问题的 本文是我在http www qtcentre org wik
  • 软件构架、架构和框架的区别

    软件框架 Software Framework 介绍 面向某领域 包括业务领域 如ERP 和计算领域 如GUI 的 可复用的 半成品 软件 它实现了该领域的共性部分 并提供一系列定义良好的可变点以保证灵活性和可扩展性 可以说 软件框架是领域
  • 创建任意程序为系统服务

    网上流传的创建系统服务的方法我看着真麻烦 把我自己弄的很简单的代码共享下 create SERVICENAME bat ECHO OFF sc delete SERVICENAME sc create SERVICENAME start a
  • 框架学习——带你了解SpringBoot框架

    目录 一 SpringBoot简介 1 1 原有Spring优缺点分析 1 1 1 Spring的优点分析 1 1 2 Spring的缺点分析 1 2 SpringBoot的概述 1 2 1 SpringBoot的特点 1 2 2 Spri
  • ArcGIS GraphicsLayer层的特殊要求

    如果你要使用GraphicsLayer这个绘图层 那么你需要注意自己的布局的模式不可以使用 layout absolute 如果你使用了这个布局 那么你的GraphicsLayer层可能会无法使用 比如下面的程序就是因为设置了 layout
  • 前端框架之Vue学习(二)

    一 事件修饰符 enter 回车生效 常用于替代判断是否按下回车事件 once 单次生效 只会生效一次 stop 阻止事件冒泡 self 阻止事件冒泡 只有点击自身时才生效 capture 将后面的事件变为捕获事件 prevent 阻止默认
  • EF4 Code First - 如何正确映射跨多个表拆分实体

    我正在使用 EF4 CTP5 尝试保留一个 POCO 对象 该对象分为两个表 链接是 ContactID 当我保存联系人时 我希望将核心联系人信息保存在一个表 联系人 中 并将拥有该联系人的用户的链接保存在另一个表 UserToContac
  • Code-First EF4 中的多对多关系

    如何在 EF4 Code First CTP3 中表示多对多关系 例如 如果我有以下课程 class User public int Id get set public string Name get set public ICollect
  • 如何将简单类序列化/反序列化为 XML 并返回

    有时我想模拟类的存储数据 而不需要设置与数据库的往返 例如 假设我有以下课程 public class ShoppingCart public List
  • POCO 的行为和持久性无知

    根据我的阅读 POCO 类应该是持久性无知的 并且不应该包含对存储库的引用 Q1 鉴于上述情况 我将如何填充 QuestionBlocks 集合 我读过 POCO 应该包含行为 这样你就不会以贫血模型结束 所以我有点困惑 如果没有坚持 应该
  • POCO 与实体框架生成的类? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 实体框架 4:为所有实体创建单个图表有意义吗?

    我写了一些关于实体框架的假设 然后是几个问题 所以请纠正我错误的地方 我正在尝试将 POCO 与 EF 4 一起使用 我的假设 EF 图只能存在一个数据上下文 数据上下文可以引用多个实体 如果您有两个数据源 例如 MS SQL Server
  • Entity Framework 4 v2 中与 POCO 的一对一关系

    我一直在寻找有关如何在 EF4v2 中与 POCO 建立一对一关系的示例 我发现很多例子只展示了如何创建一对多或多对多 你有这方面的资源吗 这对我有用 using System using System Collections Generi
  • Reporting Services:具有父子孙的业务对象数据源

    如何使用 POCO 自定义业务对象创建具有父子孙关系的报表 public class Invoice public List
  • 实体框架急切加载不返回数据,延迟加载则返回数据

    我首先使用代码EF5我有一个对象 其集合定义为virtual 延迟加载 调用时返回数据 不过我希望它能够立即加载 我已经删除了virtual来自属性签名 但现在它总是返回null data EF 甚至不运行查询 有人可以帮忙吗 编辑 我知道
  • 在 MVC2 中使用 FluentValidation 与 Castle Windsor 和 Entity Framework 4.0 (POCO)

    这不是一个非常简单的问题 但希望有人遇到过 我正在努力让以下事情协同工作 MVC2 流利验证 实体框架 4 0 POCO 温莎城堡 我几乎已经把一切都搞定了 我已经实现了 Castle Windsor 并使用由 WindsorControl
  • 如何编写自定义 POCO 串行器/解串器?

    我想为 FIX 消息编写一个自定义 NET 序列化器 反序列化器 与 XML 不同 基本上该消息的编码为
  • 为什么 DbSet.Add 工作这么慢?

    8 个月前曾在这里讨论过同样的话题 如何加快 DbSet Add 的速度 https stackoverflow com questions 4355474 how do i speed up dbset add 除了使用 SqlBulkC
  • 将 XML 映射到 C# 中的类

    我希望使用 XmlSerializer 对象将嵌套元素中的多个 XML 属性映射到单个 POCO 类中 XML

随机推荐

  • Fast-planner 和 Ego-planner 比较

    Fast planner 和 Ego planner 比较 Fast PlannerEgo planner Fast planner和Ego planner都是无人机路径规划中常见的算法 xff0c 但它们的实现方式和目标略有不同 Fast
  • Teach-Repeat-Replan: A Complete and Robust System for Aggressive Flight in Complex Environments 论文笔记

    Teach Repeat Replan 飞行走廊生成方法凸多面体膨胀CPU加速GPU加速飞行走廊生成与环路消除 时空全局轨迹优化空间轨迹优化时间轨迹优化 在线局部重规划局部重规划框架 飞行走廊生成方法 围绕 teaching traject
  • ovn实验手册

    参考文档 openstack ovn结合官方文档 ovn实践参考
  • 蓝桥杯 小数第n位 问题的几种解法

    蓝桥杯 小数第n位 问题的几种解法 题目描述解法1 根据手动计算除法的过程 题目描述 我们知道 xff0c 整数做除法时 xff0c 有时得到有限小数 xff0c 有时得到无限循环小数 如果我们把有限小数的末尾加上无限多个 0 xff0c
  • 解决Vmware虚拟机无法打开Ubuntu的问题

    1 xff0c 问题 很多同学会在Window PC机上使用Vmware虚拟机来搭建Linux开发环境 xff08 如Ubuntu xff09 xff0c 使用过程中难免会出现Ubuntu崩溃 异常关闭等现象 xff0c 此时 xff0c
  • antd 表单动态添加表单项编辑回显数据

    在做一些后台管理会用到很多的表单 xff0c 比如动态项表单 xff0c 如下图这样的 话不多说 xff0c 上代码 创建修改版本 import React from 34 react 34 import Form Notification
  • 二进制流文件下载

    在做一些文件下载的时候 xff0c 后端返回的二进制流文件 xff0c 这里前端的兄弟姐妹就需要处理一下了 直接上代码 xff1a 下载 export function download id return request url 96 r
  • ES6数组reduce的妙用

    定义和用法 reduce 方法接收一个函数作为累加器 xff0c 数组中的每个值 xff08 从左到右 xff09 开始缩减 xff0c 最终计算为一个值 reduce 可以作为一个高阶函数 xff0c 用于函数的 compose 注意 r
  • element 去掉form表单的某一项单个form-Item校验

    在执行完相应的方法 xff0c 立即触发移除校验 this nextTick 61 gt this refs 39 form 39 clearValidate 39 name 39 this refs 39 form 39 clearVal
  • element表单多行数据自定义校验以及自定义传参

    场景说明 如下图 在form表单中迁移table表格 每行数据都要能编辑 单独校验 注释 此处的资源下拉框校验 还需要走异步请求获取结果 然后再对比校验 nbsp 话不多 上代码说明 1 首先获取的接口数据如下 form vmDataLis
  • Hbuilder修改项目git提交路径

    在git的使用中 xff0c 经常会出现git服务器IP地址变更的现象 xff0c 一旦服务器的IP地址有变化 xff0c 本地仓库的代码就和服务器失去了联系 xff0c 无法同步服务器的代码 这里说明一下 xff0c 如何修改git提交路
  • css3的clip-path方法剪裁实现(三角形,多边形,圆,椭圆)

    本例讲解如何通过clip path 把一个div xff08 元素 xff0c 可以是图片等 xff09 裁切成不同的形状 xff0c 这里以一个div为例宽高均为300px 注意 xff1a 不支持IE和Firefox xff0c 支持w
  • layui表格(table)排序

    layui表格本身提供sort排序 xff0c 但是只能排序当前一页 xff1b 如果后台返回几十页数据 xff0c 需要排序显示 xff0c 该如何做呢 xff0c 这里闲心大神提供了一个sort监听方法 xff1a 通过监听排序的列 x
  • Liunx下修改MySQL字符集

    Liunx下修改MySQL字符集 1 查找MySQL的cnf文件的位置 color 61 green find iname 39 cnf 39 print color color 61 olive usr share mysql my in
  • vue刷新当前页面,重载页面数据

    业务场景 xff1a 在管理后台 xff0c 在执行完 xff0c 增 xff0c 删 xff0c 改 xff0c 操作的时候 我们需要刷新一下页面 xff0c 重载数据 在JQ中我们会用到location reload 方法 xff0c
  • layui动态渲染生成左侧3级菜单(根据后台返回数据)

    声明 xff1a 这里非常感谢闲心大神 xff0c 开源了非常好用的前端UI框架 xff0c layui xff0c 如有侵权请联系我 当然闲心在2 0版本的layuiAdmin已经支持了 xff0c 不过是收费版的 xff0c 需要的同学
  • layui加载数据显示loading加载完成loading消失

    项目中 xff0c 向后台请求数据 xff0c 经常会出现较长的等待时间 xff0c 这时我们需要一个loading转圈圈 xff0c 接收到后台的数据时 xff0c 让loading消失 这layui中使用方法如下 xff1a 以表格为例
  • 信号量,消息邮箱的运用

    1 信号量的用途 1 xff09 共享资源的保护 xff0c 例如需要共用一段内存 xff0c 初始信号量的计数值为1 task1 xff1a task2 pend信号量 pend信号量 共享资源 共享资源 post信号量 post信号量
  • istio 部署及调用链显示

    选择版本号下载 https github com istio istio releases 下载 wget https github com istio istio releases download 1 13 2 istio 1 13 2
  • Poco Application 框架学习(1)

    基本的功能 提供了一个 int run int argc char argv 方法用于执行app run 方法会调用 类的 void initialize Application amp self 与 int main const std