使用官方 TDLib C++ 示例,我尝试发送带有格式化降价文本的消息。
这是我的代码:
auto send_message = td_api::make_object<td_api::sendMessage>();
send_message->chat_id_ = -1001424068198;
auto message_content = td_api::make_object<td_api::inputMessageText>();
std::string text = "Hello! **how are u?**";
message_content->text_ = td_api::make_object<td_api::formattedText>();
message_content->text_->text_ = std::move(text);
send_message->input_message_content_ = std::move(message_content);
send_query(std::move(send_message), {});
Run Code Online (Sandbox Code Playgroud)
我希望看到“你好!你好吗? ”但消息是写在代码中的,没有应用降价格式。
我在谷歌上花了几个小时试图弄清楚如何强制 TDLib 解析它。
更新:解决了!
感谢阿泽姆的帮助!
使用此示例,以下代码应发送解析的消息(在 VS 2019 中测试)
void sendMsg(INT64 chatID, INT64 ReplyTo, const char* textMsg) {
const std::string text = textMsg;
auto textParseMarkdown = td_api::make_object<td_api::textParseModeMarkdown>(2);
auto parseTextEntities = td_api::make_object<td_api::parseTextEntities>(text, std::move(textParseMarkdown));
td::Client::Request parseRequest{ 123, std::move(parseTextEntities) };
auto parseResponse = td::Client::execute(std::move(parseRequest));
if (parseResponse.object->get_id() …Run Code Online (Sandbox Code Playgroud) 首先,我发现了这个问题:如何以原子方式读取x86 ASM中的值? 但它有点不同,在我的情况下,我想在32位应用程序中原子地分配一个浮点(64位双倍)值.
来自:"英特尔®64和IA-32架构软件开发人员手册,Volume3A"
奔腾处理器(以及更新的处理器)保证以下额外的内存操作将始终以原子方式执行:
读取或写入在64位边界上对齐的四字
实际上是否可以使用一些组装技巧?
我发现了很多关于从 Delphi 到 C++ 的主题,但仍然感到困惑。
std::string s1(" look here ");
Run Code Online (Sandbox Code Playgroud)
将它传递给delphi代码的正确方法是什么?
这些都不起作用,产生错误的字符
char * s = (char *)s1.c_str();
Call_Delphi_func(s);
.......
Memo1.Lines.Add(UTF8String(PChar(pointer(s))));
Run Code Online (Sandbox Code Playgroud)