Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Utilizzare una classe c++ nativa in windows form
mercoledì 24 maggio 2006 - 01.30
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
mrb
Profilo
| Newbie
12
messaggi | Data Invio:
mer 24 mag 2006 - 01:30
Ciao a tutti, ho un problema che riguarda l'utilizzo di codice unmanaged(nativo) e quello managed(.NET). Utilizzo il visual c++ 2005.
In particoalre il vorrei crearmi una dll contenente una classe c++ nativa, es:
//SumDLL.h
class __declspec(dllexport) SumDLL{
public:
int Somma(int a,int b);
};
//SumDLL.cpp
#include "SumDLL.h"
int SumDLL::Somma(int a,int b){
return(a+b);
}
e poterla utilizzare in una applicazione managed. Come posso fare? Cercando ho trovato questo metodo:
//CallDll.cpp
class __declspec(dllimport) SumDLL{
public:
int Somma(int a,int b);
};
Ma quando cerco di utilizzare la classe (SumDLL s, somma=s.Somma(3,2)) ottengo degli errori.
Qualcuno mi può aiutare.. Grazie infinite.
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
mer 24 mag 2006 - 08:03
Se si tratta di una dll scritta per il framework con c++.net per usare le sue classi e metodi devi solamente referenziarla all'interno del tuo progetto.
mrb
Profilo
| Newbie
12
messaggi | Data Invio:
mer 24 mag 2006 - 09:38
Innanzitutto grazie per la risposta. Ho provato a mettere nella stessa soluzione sia il progetto chiamante che quello della dll win32. Ho provato poi a referenziare la libreria nel progetto chiamante ma ottengo ancora degli errori.
Se io creo una libreria di funzioni e poi le importo utilizzando:
using namespace System::Runtime::InteropServices;
[DllImport("SumDLL.dll")]
export "C" int Somma(int a,int b);
riesco ad utilizzare la funzione nell'aplicazione managed soltanto copiando il file SumDLL.dll nella cartella dove è presente l'eseguibile del chiamante. Quello che vorrei fare io è creare una classe dll unmanaged e richiamarla nell'applicazione managed. Questo secondo modo non mi riesce. Altre drittei? Grazie mille.
Torna su
Stanze Forum
Elenco Threads
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 !