SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: senide en Sábado 1 de Agosto de 2009, 01:41

Título: Usando mi dll
Publicado por: senide en Sábado 1 de Agosto de 2009, 01:41
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
Título: Re: Usando mi dll
Publicado por: Eternal Idol en Sábado 1 de Agosto de 2009, 10:34
Tenes que usar la libreria de importacion, igual no te recomiendo exportar metodos de clases ...
Título: Re: Usando mi dll
Publicado por: senide en Sábado 1 de Agosto de 2009, 15:33
Pues no,como importo la libreria de importacion .lib?estoy usando visual 2008

Porque no me recomiendas exportar metodos de clases?

Graciasss! (dejavu! :D)
Título: Re: Usando mi dll
Publicado por: Eternal Idol en Sábado 1 de Agosto de 2009, 16:38
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 (http://en.wikipedia.org/wiki/Name_mangling" onclick="window.open(this.href);return false;)

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.
Título: Re: Usando mi dll
Publicado por: senide en Domingo 2 de Agosto de 2009, 00:58
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:
Título: Re: Usando mi dll
Publicado por: Eternal Idol en Domingo 2 de Agosto de 2009, 11:51
Podes usar C++ de esta manera tan simple:

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