Volevo provare a creare una dll in C++ e utilizarla "dentro" un programma C#.
Se la dll contine solo delle funzioni non è difficile, per esempio ho scritto questa semplice dll:
#include <stdio.h>
extern "C"
{
__declspec(dllexport) void DisplayHelloFromDLL()
{
printf ("Hello from DLL !n");
}
}
e richiamarla dentro un programma C# è facile:
using System;
using System.Runtime.InteropServices; // DLL support
class HelloWorld
{
[DllImport("TestLib.dll")]
public static extern void DisplayHelloFromDLL ();
static void Main ()
{
Console.WriteLine ("This is C# program");
DisplayHelloFromDLL ();
}
}
questo programma (una console application) semplicemente stampa "Hello from DLL !" sulla console.
Se però la dll C contiene anche per esempio una definizione di una struttra, la posso "esportare" ed usare nel programma C# o la dovrei "trasformare" in una classe usando StructLayout? Qualcuno conosce qualche esempio?