private void LoadCQP() { if (CQPluginLoader.LoadLibrary("CQP.dll").ToInt32() == 0) { MessageBox.Show("未能找到 CQP.dll ,调试器运行将出现未预期的错误。"); } }
private void LoadPlugins() { var pluginDir = Environment.CurrentDirectory + "\\dev"; if (!Directory.Exists(pluginDir)) { Directory.CreateDirectory(pluginDir); AddLog(CQLogLevel.Warning, DebugerLogCategory, "请将需要调试的插件放到 " + pluginDir + " 目录下,并保证dll和json文件具有相同的名称。"); } foreach (var pluginPath in Directory.GetDirectories(pluginDir)) { var plugin = CQPluginLoader.LoadPlugin(pluginPath + "\\"); var dirName = pluginPath.Substring(pluginPath.LastIndexOf("\\", StringComparison.Ordinal) + 1); if (plugin.appId != dirName) { AddLog(CQLogLevel.Warning, DebugerLogCategory, "插件ID \"" + plugin.appId + "\" 与其所在文件夹名不相符, 文件夹名为 \"" + dirName + "\""); continue; } AppInfo += plugin.appInfo; Initialize += plugin.initialize; PluginEnable += plugin.pluginEnable; PluginDisable += plugin.pluginDisable; CQStart += plugin.cqStart; CQExit += plugin.cqExit; PrivateMsg += plugin.privateMsg; GroupMsg += plugin.groupMsg; DiscussMsg += plugin.discussMsg; GroupUpload += plugin.groupUpload; GroupAdmin += plugin.groupAdmin; GroupMemberDecrease += plugin.groupMemberDecrease; GroupMemberIncrease += plugin.groupMemberIncrease; FriendAdd += plugin.friendAdd; AddFriendRequest += plugin.addFriendRequest; AddGroupRequest += plugin.addGroupRequest; Initialize?.Invoke(plugin.authCode); } }