社区
C++ 语言
帖子详情
如何设计一个支持插件的程序?
bobya2003
2007-03-21 09:55:56
如何设计一个支持插件的程序,最好能考虑到跨平台,希望大侠们给点参考意见。。。。
...全文
757
31
打赏
收藏
如何设计一个支持插件的程序?
如何设计一个支持插件的程序,最好能考虑到跨平台,希望大侠们给点参考意见。。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
31 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bobya2003
2007-03-24
打赏
举报
回复
谢谢各位 下星期结帖
boxban
2007-03-22
打赏
举报
回复
以我看来,所谓插件可以简单理解为实现了约定接口规范的软件模块,该软件模块是可以被宿主程序动态加载的。宿主程序预先定义了一系列接口规范以及相应的语义规则等,插件则按照约定实现这些接口,并编译成可动态加载的模块。
正如前面各位DX所言,由于C++缺少ABI(Application Binary Interface),所以实现插件的二进制跨平台是不可能的。然而我们完全可以在源代码一级实现跨平台支持,尽管这也存在一定困难,但技术上是可行的。
至于如何设计接口,这完全是与具体应用相关的东西。接口设计的质量很大程度上取决于设计者。设计者对当前及未来需求的理解及把握、在系统设计方面的功力,对语言特性的了解,对不同平台之间差异的理解等都将对最终的设计产生影响。
orc1984
2007-03-22
打赏
举报
回复
glib
lidongri
2007-03-22
打赏
举报
回复
还有,根据插件的应用范围不同
使用的方法也不同
功能插件?
数据插件?
其他?
bobya2003
2007-03-22
打赏
举报
回复
to :lidongri(海浪 源码之前了无秘密)
看了 http://www.window07.com/other/2006-3-3/k72893.htm
对decorator模式有了了解,感觉不太好应用到插件中来,不知道各位有什么其他建议么。。。。
lidongri
2007-03-22
打赏
举报
回复
bobya2003() ( ) 信誉:100 Blog 2007-03-22 09:37:24 得分: 0
如果接口现在不太好确定,有什么办法可以避免吗? 能不能扩展呢?
--------------
很难
给一个类添加新职责,参见设计模式中decorator模式
bobya2003
2007-03-22
打赏
举报
回复
项目需求还不是很明确,走的是原型,为了以后方便,我现在会尽量考虑的多一点。。。。。
lsaturn
2007-03-22
打赏
举报
回复
貌似程序开发时就该决定是否跨平台了
bobya2003
2007-03-22
打赏
举报
回复
如果接口现在不太好确定,有什么办法可以避免吗? 能不能扩展呢?
lsaturn
2007-03-22
打赏
举报
回复
跨平台跟你们系统有关,跟做插件无关,插件就是操作或者增强主程序的一些功能,约定一个规则保证插件和主程序的交互就可以了,要看你的需求是什么
itdreamer
2007-03-22
打赏
举报
回复
oo
roger_77
2007-03-21
打赏
举报
回复
Wxwidgets+DLL
bobya2003
2007-03-21
打赏
举报
回复
离开一会,下午再来请教...TKS
bobya2003
2007-03-21
打赏
举报
回复
有谁知道bo2k是采用甚么方法支持插件的吗?
taodm
2007-03-21
打赏
举报
回复
理论上方法相同,但代码细节差了很远
bobya2003
2007-03-21
打赏
举报
回复
其他平台下面也能用这种方法吗?
taodm
2007-03-21
打赏
举报
回复
“那一般需要怎么定义接口呢?”
这个只有你自己知道。你要插件实现什么功能,就定什么接口。
bobya2003
2007-03-21
打赏
举报
回复
是指显示调用dll来实现插件吗?那一般需要怎么定义接口呢?
taodm
2007-03-21
打赏
举报
回复
不用corba那就com;com都不允许那也得dll。
不然,你就内建lua/python编译器加载脚本。
这个,无法建议的,必须根据实际想支持什么类型的插件自己想的。
bobya2003
2007-03-21
打赏
举报
回复
如果暂时不考虑跨平台,用C++应该怎么设计这种插件架构呢? 项目不允许用corba。。。。。
加载更多回复(11)
selenium-ide-2.5.0工具
Selenium IDE 2.5.0 是
一个
强大的自动化测试工具,专为Web应用
程序
设计
,尤其适合功能测试。这款工具是Selenium Suite的一部分,基于Firefox浏览器的
插件
形式存在,允许用户录制、编辑和回放测试脚本。在本文中,...
python for eclipse
Eclipse本身是
一个
开源的、跨平台的软件开发工具平台,最初
设计
用于Java开发,但通过各种
插件
可以
支持
多种编程语言,如C++, Python等。Python for Eclipse
插件
是这个平台扩展的一部分,它提供了以下关键功能: 1. *...
eclipse-jee-mars-R-win32-x86_64位官方绿色版.zip
Eclipse-jee-mars-R-win32-x86_64位官方绿色版.zip是
一个
针对Windows平台的64位版本的Eclipse集成开发环境(IDE)的压缩包,特别为Java企业级(J2EE)应用
程序
开发
设计
。该版本发布于2015年6月30日,是当时Eclipse ...
一种
插件
式的Windows
程序
设计
原理
这种
插件
式的Windows
程序
设计
方法,即
一个
进程多个DLL,理论上可以无限扩张。
程序
中的每个功能模块都是
一个
单独的DLL,每个DLL之间又可以相互进行通信,DLL A可以发送消息到其他任意
一个
DLL中,也可以接收其他任意...
还在苦恼如何开发
一个
Chrome
插件
吗?十分钟带你实现
一个
实用小
插件
Chrome 浏览器扩展是
一个
小软件,旨在增强或修改 Chrome 浏览器的浏览体验。扩展使用标准的网络技术(HTML、JavaScript 和 CSS)开发,既有简单的工具(如颜色选择器),也有复杂的工具(如密码管理器)。许多扩展都...
C++ 语言
65,209
社区成员
250,518
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章