c# не получается вызвать функцию из DLL библиотеки написанную на Haskell
Не получается вызвать функцию из DLL библиотеки.
Поместил DLL, созданную на Haskell, в одну папку с проектом, который написан на c#. Саму библиотеку он находит, но не функции в ней. Предполагаю, что неправильная сигнатура. При вызове выдает ошибку о том, что название функции не найдено.
Ошибка: (Unhandled exception. System.EntryPointNotFoundException: Unable to find an entry point named 'adder' in DLL 'Foo.dll'.)
Код подключаемой библиотеки:
module Foo where
adder :: Int -> Int -> IO Int
adder x y = return (x+y)
foreign export stdcall adder :: Int -> Int -> IO Int
Код основной программы:
using System;
using System.Runtime.InteropServices;
namespace TestXascel
{
class Program
{
[DllImport("Foo.dll")]
public static extern IntPtr adder(IntPtr x, IntPtr y);
static void Main(string[] args)
{
Console.WriteLine("Ok");
adder((IntPtr)5, (IntPtr)2);
Console.WriteLine();
}
}
}
Я знаю, что можно подключить и другим способом, но нужно именно этот.