当前位置: 首页 > news >正文

个人主页类网站开发背景常见的静态网页

个人主页类网站开发背景,常见的静态网页,大型网站建设推荐,全网推广代理有这样一个场景,我有一个GUI软件,把他想象成PS软件,集成了很多工具。现在我要添加新算法(PS工具),该怎么办? 有三种办法: 第一种我把新算法代码加到项目中,编译整个项目。 第二种,新…

有这样一个场景,我有一个GUI软件,把他想象成PS软件,集成了很多工具。现在我要添加新算法(PS工具),该怎么办?
有三种办法:
第一种我把新算法代码加到项目中,编译整个项目。
第二种,新算法代码封装成库,然后调用库,增添少量代码,编译整个项目。
第三种,源代码修改,可加载DLL,拿到DLL中的方法。DLL是派生类。
第一种第二种就不说了,详细说下第三种。

我首先写一个基类Tool,里面有process函数,show函数。

然后,新算法头继承自tool,比如钢笔工具PenTool。将工具打包成DLL,PenTool.dll,其中有一个概关键函数叫做CreatTool,返回类型为Tool* ,但是实际返回 new PenTool。有点像工厂模式。

在应用程序中(PS软件),初始化时加载DLL,获取所有DLL的CreatTool函数,保存在map<string,function>中。然后我使用工具时直接查询map的value,然后调用process函数,show函数,就能直接调用派生类的方法了。

下面给出部分代码:
首先是如何在应用程序中加载DLL

//----------应用程序--------------
QMap<QString, QLibrary*> dll_map;  
void ToolBox::GetToolDLL(QString name)
{// 根据工具名称查找配置文件中的DLL路径QString dllPath = FindDLLPathByName(name);if (!dllPath.isEmpty()) {// 加载DLLQLibrary toolDLL(dllPath);if (toolDLL.load()) {dll_map.insert(name, toolDLL);}}
}
//  应该还有一个函数,输入文件夹名称,拿到文件夹下的所有DLL名称,
// 然后循环执行GetToolDLL 以加载所有的DLL
// ....
// ....
// ....
// ....Tool* ToolBox::NewToolObj(QString name)
{return (Tool*)((QLibrary*)dll_map[name]->resolve("CreatTool"));
}//--------------------算法程序-------------------------
class PenTool : public Tool
{Q_OBJECT
public:explicit PenTool (QWidget *parent = nullptr);~PenTool ();private:Ui::PenTool *ui;
};extern "C" SS_EXPORT Tool* CreatTool()
{return new PenTool();
}extern "C" SS_EXPORT void DestroyTool(Tool* tool)
{if (tool != nullptr){tool->Release();}
}
http://www.yayakq.cn/news/62100/

相关文章:

  • 优化后的网站17zwd一起做业网站
  • 网站运行维护方案网站后台统计代码
  • 吴桥网站建设价格搜索网站开发背景
  • 优秀网站建设空间企业网站优化官网
  • 网站建设成功案例书籍电商平台商城系统搭建
  • 免费做旅游海报的网站昆明建设网站公司
  • 哪里有给网站做360wordpress数据库软件
  • 免费正能量网站下载ww网站做SEO优化多少钱
  • 手机网站推荐哪些wordpress怎么发布文章到专题栏目
  • 网站优化怎么样优秀网页设计案例分析图文
  • 网站管理的含义百度热度
  • 有关网站建设文章网站后台示演
  • 瑞安市住房和城乡建设局网站英文网站建设电话
  • 杭州网站建设优化专业网站定制公司
  • 酒泉百度做网站多少钱个人视频网站注册平台
  • 公司网站服务费计入什么科目购物网站项目开发
  • 集团网站模板镇江seo公司
  • 网站推广优化联系方式做单本小说网站怎么样
  • 外贸网站做多少钱的玉树wap网站建设公司
  • 链天网站建设wordpress怎么做博客
  • wordpress托管和建站石家庄网站设计培训班
  • 凡科网站官网登录入口北京专业的网站ui设计公司
  • 福海网站制作公司英文网站多少钱
  • 工程信息网站哪家做的较好wordpress音乐悬浮
  • 做资金盘网站违法吗哪个cms方便快速建站
  • 设计logo网站赚钱南宁网站建设索王道下拉
  • 网站的布局结构亚马逊aws永久免费服务69
  • 怎么创建一个网站如何在一个数据库做两个网站
  • 校考前做试题的网站网站建设死人接单
  • 网站免费建站中国职业培训在线