Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

为NEO-GUI 添加插件系统

qaz88889999
195 0 0
作为一个NEO区块链技术爱好者,经常要摆弄NEOGUI,而NEOGUI在众多开发者手中有了众多的分支实现,我也有自己的分支改版。这是一件很麻烦的事情。
% B! I: `6 \) Q, ~+ l虽然NEO-GUI定位为一个演示客户端与开发工具,不过使用他的开发者还是很多的,大家都要对NEO-GUI进行各式各样的修改。
/ B' |% w5 K& d' i那么为什么不增加一个插件机制呢,说干就干。
2 B# `' L/ I9 r/ _+ h先贴地址,此分支版本的源码在:https://github.com/lightszero/neo-gui.git) e3 {$ m& s" L0 c. H/ @
为neo neovm neogui 三合一,随时和NEO仓库保持同步。
+ c7 m8 y6 K8 _0 G6 m9 W先增加一个插件模块,里面有两个接口,一个IAPI,提供客户端暴露给插件使用的接口
- H* b! {8 f0 [7 B7 T+ S# f: iNEOGUI 继承此接口。另一个是IPLUGIN,插件实现此接口。
# e1 \5 [- X6 z3 M( G. Q3 y
, Q* K; D7 g# [3 w然后在NEO-GUI启动时,动态寻找插件的dll,用反射方法找出其中的插件类型,并创建实例。- D* i6 Q5 x1 R3 x- l
最后在NEO-GUI动态增加菜单,按下菜单时呼叫对应的插件。6 V0 b; S" K8 ?; K6 `
这个插件机制就完成了。4 Y7 w/ m! \, D6 N8 |1 X2 A! F
我们先来看一下效果2 V/ Y2 e* x! `
* K# K7 T; m. F, N+ N8 E8 ?
刚加上插件机制,和普通客户端并无不同,那个good请无视掉,本来应该安置一个插件管理器什么的。: T" b7 P& S: t, M
% h4 l% s. Y! p# h7 A
在运行程序的目录
: `! w0 D# I  z( h2 O
5 y! v, o! A6 H! G创建一个文件夹4 S0 c# z% I2 \+ _& M
把插件copy进去,重启gui即可生效。
& M" k9 }/ z% q2 ]8 S我们先copy 一个 sample_plugin
6 w) I, y2 H* I/ [
4 p2 ~$ G0 c/ c2 x2 `4 _9 A# o效果如下,为这个插件增加了一个菜单项2 ]( y" d9 B* s9 f/ K
7 ?  m+ y2 y: p# T8 w8 x, H
功能是简单的弹出了一个对话框
8 j5 |% i0 j* @# J5 M这个插件的源码非常简洁% q% L+ u. ]' P

5 s+ p% f" |  F! f, A我们再安装另一个插件,他有一个实际的功能,可以查询storage存储区里面的内容3 g4 H6 W5 {, i# [- x
( F' k: s$ M4 o! O* v5 M

. n( G- d4 V, a( t; p5 R! Q' L9 j对neogui源码的侵入性也很小
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

qaz88889999 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1