elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Usar dll de C++ en C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Usar dll de C++ en C#  (Leído 4,213 veces)
arenoide

Desconectado Desconectado

Mensajes: 167



Ver Perfil
Usar dll de C++ en C#
« en: 22 Octubre 2011, 13:39 pm »

Hola,

Mi aplicación principal la estoy haciendo en C#, pero he encontrado una función que me vendría muy bien. El tema es que está compilado en C++. He estado googleando un poco y he encontrado que para incluir una DLL en C# puedo aprovecharme de .NET Framework y con DLLimport usar las funciones de la DLL. La cosa está en que aunque tengo también el código C++ que genera la librería DLL, soy incapaz de saber cuales son las funciones de entrada de la DLL y demás.
Podría alguien explicarme cómo encontrar las funciones de una DLL en el código o pasarme algún link. Es que claro, al usar el Dllimport, ya no sirve poner el "." y que te salgan las funciones disponibles...

En el código C++ hay un proyecto de ejemplo, pero usa directamente los .h y demás, aunque cuando lo genero al final solo obtengo un .exe muy chico que no funciona si no pones la .dll al lado. Estoy un poco perdido, la verdad.

Gracias de antemano.

Edito:

Entre otras cosas el programa test en C++ tiene esto:

Código
  1. #include "..\Calculator.h"
  2. .
  3. .
  4. .
  5.  
  6. Calculator calc;
  7.  
  8. calc.Calculate(chars1,chars2, chars3, Trials, result);
  9.  

Tras lo cual, la variable que a mí me interesa es la variable result. He usado el programa dll export viewer para detectar las funciones que tiene la dll y, entre otras me ha sacado estas:

const Calculator::`vftable'
public: __thiscall Calculator::Calculator(class Calculator const &)
public: __thiscall Calculator::Calculator(void)
public: class Calculator & __thiscallCalculator::operator=(class Calculator const &)
public: int __thiscall Calculator::Calculate(char const *,char const *,char const *,__int64,double *)
public: virtual __thiscall Calculator::~Calculator(void)

Entiendo que con eso y el Dllimport se puede recrear lo mismo, pero no sé cómo. Alquien me puede echar una mano?



« Última modificación: 23 Octubre 2011, 15:49 pm por arenoide » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Usar TXT con PHP
PHP
IvanUgu 4 5,247 Último mensaje 2 Octubre 2009, 12:59 pm
por SnakeDrak
Usar DLL de VB6 en C
Programación C/C++
calk9 7 4,123 Último mensaje 4 Septiembre 2011, 22:32 pm
por calk9
Encapsulación ¿por qué usar getters y setters?
Java
Aikanáro Anário 6 8,633 Último mensaje 13 Junio 2012, 23:17 pm
por Valkyr
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines