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

È stato utile?

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 ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top