Esportare/Importare classi con DLL

sabato 04 marzo 2006 - 19.13

piottola Profilo | Newbie

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
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5