Exportación c ++ funciones dentro de una aplicación C #
-
21-09-2019 - |
Pregunta
Saludos, Lo siento por molestar, voy a mostrar la pregunta:
Estoy tratando de exportar algunas funciones escritas en C ++ en una DLL con el fin de importarlos en un C # aplicación que se ejecuta en Visual Studio. Hago la exportación como se indica en el siguiente código:
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...
}
El archivo DLL se creó righly y el código ya está CLR-administrado (se veía con un software de desmontaje (reflector)) y contiene las funciones exportadas entonces "agregar la referencia" en mi aplicación C # y se encuentra el archivo DLL, pero cuando Lo abro con el explorador de objetos está completamente vacía, ni clase, ni objeto ha sido exportado y listo para su uso
¿me pueden ayudar por favor? Gracias saludos cordiales
Solución
¿Qué pasa con el uso manejado C ++ para compilar el archivo DLL? A continuación, sólo tiene que añadir una referencia a la clase como esta:
namespace SOMENAMESPACE
{
public ref class SOMECLASS
{
public:
SOMETYPE func(param A,char b[tot]);
};
}
Después de una compilación exitosa y hacer referencia en el otro proyecto, la clase debe ser visible. Exportando nativo C ++ no es realmente portátil, cada compilador produce resultados diferentes y es tedioso para enlazar desde dentro de C # ...
EDIT: añadido modificador de acceso público a la clase ref ...