刚才写了一个简单的 myBase 插件框架,附 C++ 源程序供参考

137 views
Skip to first unread message

wjj

unread,
Jan 1, 2009, 10:46:28 AM1/1/09
to myBase 中国用户组
1、在本讨论组的 [文件] 区中下载这两个文件:dll_apis.def ,nyf_plugin_demo1.cpp 保存到本地硬盘目录中。

2、然后用以下命令编译/链接 (VC6+):

d:\src\> cl /c /nologo /GX /MD /O2 /Og /GD /I./ /DWIN32
nyf_plugin_demo1.cpp
d:\src\> link /DLL /nologo /OUT:nyf_plugin_demo1.dll /DEF:dll_apis.def
*.obj user32.lib

3、如果编译顺利,将得到DLL文件:nyf_plugin_demo1.dll ,这个就是 myBase 插件DLL。将其复制到 myBase
安装目录下的 ./add-ons 目录中,默认安装目录是:C:\Program Files\wjjsoft\nyfedit5\

d:\src\> copy /Y /B ".\nyf_plugin_demo1.dll" "C:\Program Files\wjjsoft
\nyfedit5\add-ons\"

4、重新打开 myBase Desktop 5.x,在 Capture 和 Help 主菜单中就可以找到新添加的插件项。

5、这个程序只是演示插件的接口,提供一个简单的插件开发框架,具体功能可以在插件接口函数中编写相应的功能实现代码。在源程序中有 "put
your own code" 的位置标注。

jarod

unread,
Jan 4, 2009, 5:02:30 AM1/4/09
to myBase 中国用户组
由于本人不会VC,下面的内容供初学者参考一下.
下载了一个缩微版VC6,在命令行模式下无法编译,提示如下:
nyf_plugin_demo1.cpp(6) : fatal error C1083: Cannot open include
file:
'string':
No such file or directory
感觉是引用的库没有找到,在path中加了很多路径也不顶用.
于是期望直接使用MSDEV IDE环境直接编译,结果通过,方法如下:
1) 启动msdev,
2) 新建=>工程=>Win32 Dynamic-Link Library (设置工程名,路径)
3) 打开工程后,在左边的fileview的source files目录点右键:导入文件 nyf_plugin_demo1.cpp,
dll_apis.def
4) F7 编译.
5) 将工程目录下Debug\子目录中的同名dll复制到mybase5 addons 路径下,重启mybase成功.

终于起了个步.后面的继续研究.


PS: VC6可以在 www.xdowns.com下载.

wjj

unread,
Jan 5, 2009, 3:30:39 AM1/5/09
to myBase 中国用户组
是这样的,如果不熟悉命令行编译,在IDE中构造插件 DLL 可能会相对简单一些。

另外,根据 jarod 提供的 TAB 缩进文本,已将导入程序写好了,在 [文件] 区中下载这两个文件:

nyf_plugin_outline.cpp
nyf_plugin_outline.def

由于需要调用 SSG 数据引擎,向当前NYF库中创建条目,所以需要引用 ssg_dll.h

编译时,将 ssg_dll.h 拷贝到源程序目录中,然后以这个命令编译:

cl /c /nologo /GX /MD /O2 /GD /I./ /DWIN32 nyf_plugin_outline.cpp

link /DLL /nologo /OUT:nyf_plugin_outline.dll /
DEF:nyf_plugin_outline.def *.obj user32.lib comdlg32.lib

即可生成需要的插件DLL: nyf_plugin_outline.dll


On 1月4日, 下午6时02分, jarod <jarodqu...@gmail.com> wrote:
> 由于本人不会VC,下面的内容供初学者参考一下.
> 下载了一个缩微版VC6,在命令行模式下无法编译,提示如下:

wjj

unread,
Jan 5, 2009, 3:37:33 AM1/5/09
to myBase 中国用户组
其他类似的插件功能,都可以参照这个框架和示例程序,其他详细信息请参考 myBase SDK 文档。
如果在开发插件过程中,遇到什么问题,请跟我们联系。

long...@gmail.com

unread,
Jan 5, 2009, 10:49:05 PM1/5/09
to myBase 中国用户组
我在VC9下无论如何编译,得到的nyf_plugin_demo1.dll都不能被MYBASE识别,是否把DLL文件放到add-ons文件夹还要
做其他的设置呢,还是要在VC6环境下编译才行?

On 1月1日, 下午11时46分, wjj <junj...@gmail.com> wrote:

wjj

unread,
Jan 9, 2009, 1:15:53 AM1/9/09
to myBase 中国用户组
插件DLL复制到 add-ons 目录中,然后启动 myBase,看有没有成功。

编译后,可以用这个命令看是否有正确的API输出:
dumpbin /exports <plugin dll filename>

至少需要看到三个 _nyf_addon_... 输出函数,否则编译不成功。

注意VC编译时将 .def 文件一起加入工程文件中。

Reply all
Reply to author
Forward
0 new messages