社区
C++ 语言
帖子详情
如何设计一个支持插件的程序?
bobya2003
2007-03-21 09:55:56
如何设计一个支持插件的程序,最好能考虑到跨平台,希望大侠们给点参考意见。。。。
...全文
730
31
打赏
收藏
如何设计一个支持插件的程序?
如何设计一个支持插件的程序,最好能考虑到跨平台,希望大侠们给点参考意见。。。。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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)
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 ...
JAVA_API1.6文档(中文)
javax.imageio.spi 包含用于 reader、writer、transcoder 和流的
插件
接口以及
一个
运行时注册表的 Java Image I/O API 包。 javax.imageio.stream Java Image I/O API 的
一个
包,用来处理从文件和流中产生的低级别 I...
selenium-ide-2.5.0工具
Selenium IDE 2.5.0 是
一个
强大的自动化测试工具,专为Web应用
程序
设计
,尤其适合功能测试。这款工具是Selenium Suite的一部分,基于Firefox浏览器的
插件
形式存在,允许用户录制、编辑和回放测试脚本。在本文中,...
一种
插件
式的Windows
程序
设计
原理
这种
插件
式的Windows
程序
设计
方法,即
一个
进程多个DLL,理论上可以无限扩张。
程序
中的每个功能模块都是
一个
单独的DLL,每个DLL之间又可以相互进行通信,DLL A可以发送消息到其他任意
一个
DLL中,也可以接收其他任意...
C++ 语言
65,184
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章