前言

欢迎你来到这里,此篇教程很简单。如何使用插件模板写插件
这个模板是专用于萌化箱的 因此就是萌化箱插件
关于插件模板你可以在群文件下载也可以戳我转到托管页面
插件打包工具戳我下载提取码:wzas

准备工作

①开发工具 这就不用说了吧 我用的是VisualStudio2017
②插件模板和打包工具 链接在上面
③选择一种语言 目前只有C# E语言 C++三种语言的模板

开始使用

先说C++吧 我使用的是v141版本的 如果打开工程不能使用 你可以升级或者降级
低于v141也是可以的

然后E语言 要求5.7以上的版本
里面的萌化箱插件开发模块是主要 Moe是英文类 和c++ c#一样 MoeCN是中文类 函数名是中文的

C# .NET的版本是4.0 请不要更改 萌化箱调用的是此版本的程序集 改了插件就不能用了~
默认命名空间最好也不要改 不然可能会出问题

使用C++模板

C++的模板里有自述文件

========================================================================
    动态链接库:MoePluginTemplate 项目概述
========================================================================

此项目是萌化箱插件开发的模板

MoeAPI.h 是萌化箱接口及常量的声明
MoeAPI.cpp 是接口函数的实现
MoePluginTemplate.cpp 是项目的主体 包含萌化箱定义的事件
Source.def 是导出定义文件

主要使用全局变量:

    HWND MoeHwnd - 是萌化箱的主窗口句柄
    HMODULE hModules - 是当前模块的句柄
    MoeAPI Moe - 是萌化箱接口类

其他全局变量:

    string datas - 用来装载临时消息
    string Indexs - 插件在萌化箱列表中的索引

/////////////////////////////////////////////////////////////////////////////

其他说明:
    MoePluginTemplate.rc 是存放内置资源的文件 包含一个IDB_IMG1资源 它是测试代码所调用的资源 不需要请删除
    文件中包含了注释 /*测试代码*/ 段的代码属于开发中保留下来的代码 用于测试,也便于演示 没有删除 不需要请删除


/////////////////////////////////////////////////////////////////////////////
其他标准文件:

StdAfx.h, StdAfx.cpp
    这些文件用于生成名为 MoePluginTemplate.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。

一张图看懂 不用多说了吧

界面的创建

普通的win32dll是没有窗口的 萌化箱提供了简单的界面API 你也可以使用第三方界面库
插件模板里的测试代码是一个简单的界面,使用还是比较简单的

模板项目里面的代码基本上都有注释 而且很详细,看看就懂了
可能模糊的地方
设置组件的属性

//使用MoeSetBoxAttribute设置组件的属性
/*置组件属性
Type - 组件类型
SetType - 要设置的属性类型(常量 Moe_BoxType_XXX 窗口请填1)
Value - 要设置的值
Hwnd - 组件句柄
*/
int MoeSetBoxAttribute(int, int, string, HWND);

/*因为是string参数 可能有些感觉不对劲233
设置组件的宽度 高度之类的 例子:
设置按钮的顶边为200 */
MoeBoxAttribute(Moe_Box_Button,Moe_BoxType_Top,"200",test);
//Moe_Box_Button和Moe_BoxType_Top都是常量,它们在MoeAPI.h

设置资源
设置资源也是string参数 但是需要转换一下
一张图就明白

也就是在使用MoeBoxAttribute时第3个参数使用MoeSetResource转换一下就行了
同样 别的设置资源的都是用它 比如播放声音也是
注意设置图片的常量是Moe_BoxType_Image
其他的写的很清楚 就不说了

使用E语言模板

说明

每个模板里面都是由测试代码的
一个简单的界面
图片直接转换 参数是字节集

Moe.xxx 是普通类
MoeCN.xxx 是中文类 功能和普通一样 只是名字改成了中文
它们可以混用
命令、常量等都在模块里
E语言创建窗口也是很容易的,可以加入窗口
也可以使用萌化箱的API创建界面
注释也都有的,双击模块打开看一看

设置插件名和描述

使用C#模板

注意

在开始的时候记得修改命名空间
只修改此处命名空间即可 别的不需要改

说明


设置资源的名字是函数命名空间+资源名称

函数的命名空间是MoePluginTemplate 因此资源就填 MoePluginTemplate.xxx
这个命名空间和上面的不想干 不要改它最好

其他的都一样 看注释咯

说明

用MoeCreateBox创建的组件是可以创建在萌化箱窗口上的 MoeHwnd是萌化箱句柄
萌化箱上的组件也是可以设置的 只要找到句柄不就是了么

生成插件

首先打开生成工具 如果没有 在文章开头的链接下载
点击[浏览]然后选定生成出来的dll 如果成功下方就会出现信息

[设置插件信息背景图] 点击即可选定图片 效果:

[附加设置] 它是用来添加依赖文件的
假设 (假设!因为这些文件根本就没什么用) MoePluginTemplate.dll 依赖或调用了同目录的这些文件 注意是同目录 可以添加文件夹 添加的文件夹也是同目录的

COM组件

C#编写的dll是COM组件 需要注册才能使用 如果[浏览]C#编写的dll 出现类似"组件能够载入但是似乎没有注册,请使用RegAsm.ex注册后再试"的提示 清理一下项目再生成就行了
前提是VisualStudio是管理员身份运行的 如果不是会提示,项目中默认是勾选注册的

确认无误后就可以生成成功了 生成的文件后缀是.moex 是萌化箱插件

如何方便调试

首先需要先打包一次插件
看上面的方法

C#

先说C# 比较容易也比较麻烦 2333
如果要调试dll 就要生成出来。打包一次安装到萌化箱之后 关掉萌化箱
然后点生成-清理 之后再生成就行了。文件不需要再安装! 生成在任何位置都可以 萌化箱一样用 因为COM组件注册之后在注册表 任何位置都能调用
同样的 如果要再次生成 先关掉萌化箱才行 虽然关掉再开很麻烦 但总比重新打包快 2333

C++和E语言

将插件安装之后打开萌化箱所在目录\Plugin
可以看到.moe 和同名目录 这里安装了C#的 就做演示 C#的是不需要替换文件的

先点击[关闭插件]关闭之后就可以替换了
你可以更改项目输出目录到 萌化箱目录\Plugin\你的插件名
在这里设置

设置完之后要编辑.moe文件
只看第二行
比如我生成出来的文件名是MoePluginTemplate.dll
把最后的moemain.moel改成MoePluginTemplate.dll即可

生成完成之后再点击[启用插件]就好了
E语言的话 可以不用改 编译的时候会弹出对话框选择位置 直接选择moemain.moel也是可以的


いいですか