System.BadImageFormatException при вызове библиотеки ржавчины из консольного приложения netcore C#C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 System.BadImageFormatException при вызове библиотеки ржавчины из консольного приложения netcore C#

Сообщение Anonymous »

У меня есть простая функция ржавчины.

Код: Выделить всё

#[no_mangle]
pub extern fn add_numbers(number1: i32, number2: i32) -> i32 {
println!("Hello from rust!");
number1 + number2
}
который скомпилирован в dll с помощью

Код: Выделить всё

[lib]
name = "my_lib"
crate-type = ["dylib"]
Я попробовал использовать dll из консольного приложения C# (полная платформа), и это сработало. Однако, когда я пытаюсь сделать то же самое для консольного приложения C# netcore, я получаю System.BadImageFormatException. Вот что у меня есть на стороне C#

Код: Выделить всё

using System;
using System.Runtime.InteropServices;

namespace my_core_console
{
class Program
{
[DllImport(@"my_lib.dll", CallingConvention = CallingConvention.Cdecl)]
private static extern Int32 add_numbers(Int32 number1, Int32 number2);

static void Main(string[] args)
{
var addedNumbers = add_numbers(10, 5);
Console.WriteLine(addedNumbers);
Console.ReadLine();
}
}
}

вместе со следующими настройками проекта.

Код: Выделить всё



Exe
netcoreapp3.1
my_core_console
x64
x64
win-x64








Always





Я попытался настроить платформу x64 так же, как и для консольного приложения полной платформы. Однако я по-прежнему получаю следующую ошибку.

Необработанное исключение. System.BadImageFormatException: была предпринята попытка загрузить программу в неправильном формате. (0x8007000B)

Я не уверен, чего мне не хватает. Буду признателен за любую подсказку.

Подробнее здесь: https://stackoverflow.com/questions/636 ... -sharp-con
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»