C/Visual C - Creacion de una DLL

 
Vista:

Creacion de una DLL

Publicado por Edardo Negrete (76 intervenciones) el 16/05/2007 16:03:51
Que tal, ya habia puesto esta pregunta en el foro, "Me dijo fernando.gomez que no se puede lo que intento hacer" y le creo, pero quiero pensar que plantee mal la pregunta asi que la hago de nuevo.

tengo lo siguiente:

// Archivo Complex.h
class Complex
{
public:
Complex( void );
~Complex() { }
const double GetRe( void ) const { return Re; }
const double GetIm( void ) const { return Im; }
void SetRe( double pRe ) { Re = pRe; }
void SetIm( double pIm ) { Im = pIm; }
protected:
double Re;
double Im;
};

// Archivo MiDll.cpp

#include "Complex.h"
#include "StdAfx.h"

double WINAPI OperacionCompleja( double x, double y )
{
Complex Temporal;

return 0.0;
}

Pero al compilarlo me da el siguiente error:

error LNK2001: unresolved external symbol "public: __thiscall Complex::Complex(void)" (??0Complex@@QAE@XZ)

¿Tengo que usar estructuras en vez de clases o estoy haciendo algo mal?

Gracias de antemano y saludos!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Creacion de una DLL

Publicado por fernando.gomez (1603 intervenciones) el 16/05/2007 18:34:29
Hola,

el problema que tienes aquí es que tienes una clase, Complex, que estás instanciando. Luego, se necesita un constructor, ya sea el default o uno implementado por el usuario. Hasta aquí todo normal.

El problema es que declaraste un constructor pero no lo haz implementado. Simplemente impleméntalo, por ejemplo:

class Complex
{
public:
Complex( void ) {} ///// <------ aquí ya está implementado
~Complex() { }
const double GetRe( void ) const { return Re; }
const double GetIm( void ) const { return Im; }
void SetRe( double pRe ) { Re = pRe; }
void SetIm( double pIm ) { Im = pIm; }
protected:
double Re;
double Im;
};

Ese error de enlazado te da cuando estás empleando algún elemento (función, clase, etc) que declaraste pero que no haz implementado.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Creacion de una DLL

Publicado por Edardo Negrete (76 intervenciones) el 17/05/2007 01:35:11
El constructor esta implementado y toda la cosa de hecho en modo de consola se compila y corre bien.

El problema eran los archivos cree los archivos en blanco y copie el codigo que ya tenia en los otros archivos y se soluciono el problema. Cosa muy rara pero bueno me sirvio de experiencia.

Saludos y gracias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Creacion de una DLL

Publicado por Nelek (816 intervenciones) el 18/05/2007 13:35:11
Bienvenido al logico y apasionante mundo de los fallos "inexplicables" o "curiosos", de esos te puedo ensenyar unos cuantos ;) :P
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar