插件
提供适用于 SimpleRemoter 的插件编码规范、示例和下载。
编码规范
插件是一个 Windows DLL,
必须以 C 语言形式导出一个名为 run 的函数,
参数类型为 PluginParam*(定义在 commands.h 头文件中)。
commands.h(节选)
// commands.h(节选)
struct PluginParam {
char IP[64]; // 主控服务器 IP
int Port; // 主控服务器端口
// ... 其他字段
};- • 导出约定:
extern "C" __declspec(dllexport) DWORD WINAPI run(LPVOID param) - • 参数
param可强转为PluginParam*使用 - • 返回值:
DWORD,正常退出返回 0 - • 必须包含头文件
../../common/commands.h(相对于插件源码目录)
仅支持 64 位:插件必须编译为 64 位 DLL。 若加载 32 位插件,客户端将自动忽略,不会执行。
禁止修改 PluginParam 结构体:
任何字段的增删或顺序调整都会改变结构体大小和字节对齐,导致客户端在访问该结构体时发生内存越界,引起程序崩溃。
插件只能读取该结构体,不可对其进行任何修改。
插件示例
以下示例展示如何读取主控地址并弹窗显示:
plugin_demo.cpp
#include "../../common/commands.h"
extern "C" __declspec(dllexport) DWORD WINAPI run(LPVOID param)
{
PluginParam* p = reinterpret_cast<PluginParam*>(param);
char buf[200] = {};
sprintf(buf, "Master Address: %s:%d", p->IP, p->Port);
MessageBoxA(NULL, buf, "Plugin Message", MB_OK | MB_ICONINFORMATION);
return 0;
}