Вот хочу я написать «ядро» программы на расте, а GUI на C#, добавил как зависимость discord-rs в Cargo toml и написал такое в lib.rs:
extern crate libc;
extern crate discord;
use std::os::raw::c_char;
use std::ffi::CString;
use std::ffi::CStr;
use libc::c_char as cchar;
use discord::{Discord, ChannelRef, State};
use discord::model::{Event, ChannelType};
use discord::GetMessages;
use discord::model::ServerId;
#[no_mangle]
pub fn login(email: cchar, password: cchar) {
let client = Discord::new(email, pass);
}
И в Program.cs
using System;
using System.Runtime.InteropServices;
namespace cs_rust
{
class Program
{
[DllImport("libour_rust.so")]
public static extern void login(IntPtr email, IntPtr password);
static void Main(string[] args)
{
login(Marshal.StringToHGlobalAnsi("email"), Marshal.StringToHGlobalAnsi("pass"));
}
}
}
Но после добавления стороннего крейта при выполнении `dotnet run` мне выдает данную ошибочку:
Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'libour_rust.so': The specified module or one of its dependencies could not be found.
(Exception from HRESULT: 0x8007007E)
at cs_rust.Program.login(IntPtr email, IntPtr password)
at cs_rust.Program.Main(String[] args) in /home/aprokurov/Projects/Rust/cs_rust/Program.cs:line 21
С чем это может быть связано и как такое решается? Без крейта discord все работало