El codigo fuente de la dll sería:
#include "stdafx.h"
#define DLL_EXPORT extern "C" __declspec(dllexport)
DLL_EXPORT double Sum(double a, double b);
double Sum(double a, double b)
{
return a+b;
}
y el de la clase en c++ que lo consume sería:
#include "stdafx.h"
#include <iostream>
extern "C" __declspec(dllimport)double Sum(double a, double b);
using namespace std;
int main(){
cout << "hola dll" << endl;
cout << "La suma de 2 + 3 es:" << Sum(2,3);
getchar();
return 0;
}
Y ahora en este segundo video creo un proyecto de consola de c# desde
el cual también consumiremos los métodos de nuestra DLL.
El código de la clase Wrapper:
namespace UseDLLCSharp
{
class WrapperDLL
{
[DllImport("DLL.dll")]
public static extern double Sum(double a, double b);
}
}
El código de la clase principal de C#:
namespace UseDLLCSharp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("hola mundo");
Console.WriteLine("La suma de 3 + 2 es: " + WrapperDLL.Sum(3, 2));
Thread.Sleep(5000);
}
}
}