Skip to content
This repository has been archived by the owner on Aug 16, 2024. It is now read-only.

Dev/int 0x7 fffffff #137

Merged
merged 2 commits into from
Feb 28, 2022
Merged

Conversation

Int-0X7FFFFFFF
Copy link
Contributor

1.修复了样例里一个小问题
2.ImageMessage的ToJson()会导致发送图片时的报错已将代码回滚
3.不确定音频类消息会不会出现问题(我的机器人没有用到这个功能)
BUG_REP_1
4.测试所使用的代码(魔改自样例)

#include <iostream>
// 使用静态库必须要在引入 mirai.h 前定义这个宏
#define MIRAICPP_STATICLIB
#include <mirai.h>
using namespace std;
using namespace Cyan;

int main(int argc, char* argv[])
{
	system("chcp 65001");
	MiraiBot bot;
	SessionOptions opts;
	opts.BotQQ = xxxxxxx_qq;				// 请修改为你的机器人QQ
	opts.HttpHostname = "localhost";		// 请修改为和 mirai-api-http 配置文件一致
	opts.WebSocketHostname = "localhost";	// 同上
	opts.HttpPort = 8080;					// 同上
	opts.WebSocketPort = 8080;				// 同上
	opts.VerifyKey = "LINKSTART";			// 同上
	bot.Connect(opts);
	cout << "Bot working..." << endl;

	FriendImage img = bot.UploadFriendImage("./pic/setu.jpg");    //任意图片均可复现

	bot.On<FriendMessage>(
		[&](FriendMessage fm)
		{
			try
			{
				fm.Reply(MessageChain().Image(img));
			}
			catch (const std::exception& ex)
			{
				cout << ex.what() << endl;
			}
		});

	string command;
	while (cin >> command)
	{
		if (command == "exit")
		{
			bot.Disconnect();
			break;
		}
	}

	return 0;
}

@Numendacil
Copy link
Contributor

嘶,可能是C++的?:运算符不能在后两个表达式里使用不同的类型的原因……但编译过了也挺神奇的。
ToJson()这块的修改Voice和Image是一样的,如果其中一个有问题另一个应该也需要改。目前来看可以直接回滚到之前的(反正MAH目前的版本也会把空字符串当成null处理),或者复杂一点用if else判定字符串是否为空。Set()函数应该是没有问题的不用回滚

@cyanray
Copy link
Owner

cyanray commented Feb 26, 2022

嘶,可能是C++的?:运算符不能在后两个表达式里使用不同的类型的原因……但编译过了也挺神奇的。 ToJson()这块的修改Voice和Image是一样的,如果其中一个有问题另一个应该也需要改。目前来看可以直接回滚到之前的(反正MAH目前的版本也会把空字符串当成null处理),或者复杂一点用if else判定字符串是否为空。Set()函数应该是没有问题的不用回滚

?:是一方面,这个不同类型在 msvc 下可以编译通过,gcc 是不行的(nullptr 被编译器当成指针,转化成 string(nullptr) 了,所以可以通过编译)。C++ 的类型都是值类型,不可以像其他语言那样赋值 null 的,你给 string 赋值 nullptr,它会把 nullptr 当成 char*去读取字符串,nullptr不可读取,就报错了。

当然,以上都是我的猜测,我这个C++语言律师还在初级阶段,手动滑稽。

我明天抽时间进行改进,到时候再合并吧。

@cyanray cyanray merged commit b4a557e into cyanray:master Feb 28, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants