Похожие чаты

Hey everyone! How can I pass string from Rust to c++

function that expects std::string?
When I'm passing CString the c++ functions tell that the string is empty

16 ответов

28 просмотров

☠☠☠

😐

There's no interop between Rust and C++, especially STL, you need to use a C layer in-between them. Check out this video for more information why https://youtu.be/RxtXGeDHu0w

If it's a String in Rust, then they both want to "manage" it

Rust wants to allocate, resize, and free its String C++ wants to allocate, resize, and free its std::string And they both have internal representations on how to store capacity and length etc

Jacob- Автор вопроса
Thomas
If it's a String in Rust, then they both want to "...

Eventually I passed raw_parts instead of as_ptr and that way c++ could use it even after the rust function return

Jacob
Eventually I passed raw_parts instead of as_ptr an...

Unfortunately Rust is very unreadable without IDE

Jacob- Автор вопроса
Thomas
Sounds like use after free but okay

The author of the cpp library told me that he wrote the lib in a way that I can free things that passed into it

Jacob
The author of the cpp library told me that he wrot...

That doesn't matter if it's already freed, would still be UAF

Jacob- Автор вопроса
Thomas
That doesn't matter if it's already freed, would s...

I mean, from rust side it won't free. that's why I used raw_parts

cxx-rs?

Jacob- Автор вопроса

I don't know why, rust mysteries :)

Jacob- Автор вопроса
²
cxx-rs?

bindgen + cmake

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
Hi. Do we have a raid bot? Why nobody doing raids on X? Even RH mentioned this and nobody paying attention...whats the channel for hex memes? If mods cant run raids just insta...
H
31
Подскажите, а есть vault lite или ченить такое?) А то нужен вольт для похода в вольт, но весит он ~500 мб) как-то многовато для парочки запросов ))
Alexandr Orloff
17
блеать, почему так?? где в роутере это исправляется?
Арсен Маньяков 🇦🇲
16
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
🌊 Ocean Nodes Dashboard Update 🚀 Hey, Oceaners! First off, a massive round of applause 👏to all of you for the amazing engagement since we launched Ocean Nodes. In just a few ...
KreigDK | Never DM first🌊
3
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
люди, которые используют flameshot, к вам вопрос. Можно-ли поставить хоткей на создание скриншота? В программе есть отдел "горячие клавиши", но там все для редактирования, скр...
ThunDer104
11
Карта сайта