小编Sar*_*gis的帖子

TDLib:如何在消息中发送粗体文本?(?++)

使用官方 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)

c++ tdlib

7
推荐指数
1
解决办法
517
查看次数

如何在x86 ASM中原子地移动64位值?

首先,我发现了这个问题:如何以原子方式读取x86 ASM中的值? 但它有点不同,在我的情况下,我想在32位应用程序中原子地分配一个浮点(64位双倍)值.

来自:"英特尔®64和IA-32架构软件开发人员手册,Volume3A"

奔腾处理器(以及更新的处理器)保证以下额外的内存操作将始终以原子方式执行:

读取或写入在64位边界上对齐的四字

实际上是否可以使用一些组装技巧?

x86 assembly thread-safety

3
推荐指数
1
解决办法
1013
查看次数

如何将unicode字符串从C++传递到delphi?

我发现了很多关于从 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)

c++ delphi

-1
推荐指数
1
解决办法
666
查看次数

标签 统计

c++ ×2

assembly ×1

delphi ×1

tdlib ×1

thread-safety ×1

x86 ×1