• Domingo 19 de Mayo de 2024, 01:43

Autor Tema:  Usando mi dll  (Leído 1530 veces)

senide

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Usando mi dll
« en: Sábado 1 de Agosto de 2009, 01:41 »
0
Hola!

Despues de crear una dll con varias funciones me dispongo a probarla, he incluido ya en las porpiedades la referencia a la dll y en adicionales el header.
El problema es que cuando compilo el porgrama desde donde uso la funcion me salta lo siguiente:

error LNK2019: símbolo externo "public: static double __cdecl MathFuncs::MyMathFuncs::Add(double,double)" (?Add@MyMathFuncs@MathFuncs@@SANNN@Z) sin resolver al que se hace referencia en la función _main   Usandoladll.obj   Usandoladll

Alguna idea de porque?

Muchas Gracias

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Usando mi dll
« Respuesta #1 en: Sábado 1 de Agosto de 2009, 10:34 »
0
Tenes que usar la libreria de importacion, igual no te recomiendo exportar metodos de clases ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

senide

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Usando mi dll
« Respuesta #2 en: Sábado 1 de Agosto de 2009, 15:33 »
0
Pues no,como importo la libreria de importacion .lib?estoy usando visual 2008

Porque no me recomiendas exportar metodos de clases?

Graciasss! (dejavu! :D)

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Usando mi dll
« Respuesta #3 en: Sábado 1 de Agosto de 2009, 16:38 »
0
Vas Solution Explorer, boton derecho sobre el proyecto, Properties. Linker>>Input>>Additional Dependencies: import.lib.

Principalmente por el:
http://en.wikipedia.org/wiki/Name_mangling

Puede (y lo hace) cambiar entre versiones del mismo compilador, por eso es mejor exportar funciones de C, en las mismas siempre podes crear un objeto de la clase en cuestion.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

senide

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Usando mi dll
« Respuesta #4 en: Domingo 2 de Agosto de 2009, 00:58 »
0
Ok gracias! Ya esta echo, ahora voy a exportar las funciones desde C que me has convencido
A la hora de usarlas con c++ en el visiual no cambia nada no? es decir:    espacio::clase::funcion no?

 :hola:

EI: juntando mensajes.

En c no hay clases asi que tendre que llamar a la funcion de otra forma  :mellow:

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Usando mi dll
« Respuesta #5 en: Domingo 2 de Agosto de 2009, 11:51 »
0
Podes usar C++ de esta manera tan simple:

Código: C++
  1. extern "C" void funcion(int param)
  2. {
  3. //codigo
  4. }
  5.  

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.