Ciao a tutti,
vorrei scrivere una dll, scritta in C++, contenente una classe ed importarla in C#. Finchè si tratta di esportare ed importare funzioni, non ho problemi, ma con le classi non so come fare.
Motivazione: devo realizzare un'applicazione che richiede efficienza computazionale (e quindi ho deciso di utilizzare c++ per creare alcune dll), ma vorrei utilizzare c# per l'interfaccia grafica e per altre funzionalità meno "spinte". Secondo voi è una scelta adeguata?
Esempio di codice che utilizzo per esportare/importare funzioni
// Codice della dll
extern "C" __declspec(dllexport) int Somma(int a, int b) {return a+b;}
// Codice C#
[DllImport("prova.dll")]
public static extern int Somma(int a, int b);
E cosi' tutto funziona. Se, invece, devo esportare/importare una classe, come nell'esempio seguente, non so come fare. In fase di compilazione della dll non ho nessun errore e quindi presumo che il codice sia corretto; ma non so come importarla e quindi come creare ed utilizzare un istanza della classe da C#
// Codice della DLL
#define Calcoli __declspec( dllexport )
class Calcoli C {
int a;
int b;
virtual int Somma() { return (a+b); }
};
Come dev'essere scritto il codice C# per importare la classe che è presente nella dll? Posso poi utilizzare una sintassi come
Calcoli calc = new Calcoli();
?
Grazie
Thomas