вызывать неуправляемый код C ++ из C # с помощью pinvoke

У меня есть неуправляемая dll C ++, для которой у меня нет доступа к коду, но у меня есть объявления всех методов.

Давайте для простоты скажем, что .h выглядит так:

#include <iostream>

#ifndef NUMERIC_LIBRARY
#define NUMERIC_LIBRARY

class Numeric
{
    public:
        Numeric();
        int Add(int a, int b);
        ~Numeric();
};

#endif

и реализация метода в файле .cpp

int Numeric::Add(int a, int b)
{
    return (a + b);
}

Я просто хочу вызвать функцию добавления из C ++ в моем коде C #:

namespace UnmanagedTester
{
    class Program
    {
        [DllImport(@"C:\CPP and CSharp Project\UnmanagedNumeric\Debug\numeric.dll", EntryPoint = "Add")]
        public static extern int Add(int a, int b);


        static void Main(string[] args)
        {
            int sum = Add(2, 3);
            Console.WriteLine(sum);

        }
    }
}

После попытки выполнения я получил следующую ошибку :

Не удалось найти точку входа с именем 'Добавить' в DLL 'C: \ CPP и CSharp Project \ UnmanagedNumeric \ Debug \ numeric.dll'.

Я НЕ МОГУ изменить код C ++. Понятия не имею, что происходит не так. Цените вашу помощь.

6
задан ilyaw77 13 June 2011 в 14:55
поделиться