Export c ++ funzioni all'interno un'applicazione C #
-
21-09-2019 - |
Domanda
Saluti, Mi dispiace per fastidio, ti faccio vedere la domanda:
Sto cercando di esportare alcune funzioni scritte in C ++ in una DLL al fine di importarli in un C # applicazione in esecuzione su Visual Studio. Faccio l'esportazione come riportato nel codice seguente,
tobeexported.h:
namespace SOMENAMESPACE
{
class __declspec(dllexport) SOMECLASS
{
public:
SOMETYPE func(param A,char b[tot]);
};
}
tobeexported.cpp:
#include "stdafx.h"
#include "tobeexported.h"
...
using namespace SOMENAMESPACE;
SOMETYPE SOMECLASS:: func(param A,char b[tot])
{
...some stuff inside...
}
Il dll è righly creato e il codice è già CLR gestiti (sembrava con un software di smontaggio (riflettore)) e contiene le funzioni esportate poi ho "aggiungere il riferimento" nel mio c # applicazione e la DLL viene trovato, ma quando L'apro con il browser oggetto è completamente vuoto, né di classe né oggetto è stato esportato e pronto per essere utilizzato
mi potete aiutare per favore? Grazie migliori saluti
Soluzione
Cosa succede ad usare controllato C ++ per compilare la DLL? Poi basta aggiungere un ref alla classe in questo modo:
namespace SOMENAMESPACE
{
public ref class SOMECLASS
{
public:
SOMETYPE func(param A,char b[tot]);
};
}
Dopo la compilazione di successo e riferimento nel l'altro progetto, la classe deve essere visibile. Esportando nativo C ++ non è realmente portatile, ogni compilatore produce risultati diversi ed è noioso di legarsi all'interno di C # ...
EDIT: aggiunto l'accesso del pubblico alla classe modificatore di rif ...