dileoa
01-06-2011, 23:00
Salve
Sto creando una applicazione WIN32 e ho realizzato la seguente libreria di funzioni, con la seguente dichiarazione:
#pragma once
//-------------------------------------------------------------------
namespace DLibrary{// Start namespace
//-------------------------------------------------------------------
const float GetPointDistance(const float x0,
const float y0,
const float x1,
const float y1);
//-------------------------------------------------------------------
} // End namespace
//-------------------------------------------------------------------
e definita nel modo seguente:
//-------------------------------------------------------------------
// Include
#include "StdAfx.h"
#include "DLibrary.h"
#include <math.h>
//-------------------------------------------------------------------
using namespace DLibrary;
//-------------------------------------------------------------------
const float GetPointDistance(const float x0,
const float y0,
const float x1,
const float y1)
{
float Distance;
Distance=sqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1));
return Distance;
}
//-------------------------------------------------------------------
Quando vado a utilizzare la funzione, in fase di compilazione va tutto bene. Il link invece mi segnala questo errore:
1>DShoot.obj : error LNK2028: al token non risolto (0A000008) "float const __clrcall DLibrary::GetPointDistance(float,float,float,float)" (?GetPointDistance@DLibrary@@$$FYM?BMMMMM@Z) si fa riferimento nella funzione "public: float const __clrcall Project_Amaltea::DShoot::GetMissDistance(enum Project_Amaltea::DTargetType)" (?GetMissDistance@DShoot@Project_Amaltea@@$$FQAM?BMW4DTargetType@2@@Z)
1>DShoot.obj : error LNK2019: riferimento al simbolo esterno "float const __clrcall DLibrary::GetPointDistance(float,float,float,float)" (?GetPointDistance@DLibrary@@$$FYM?BMMMMM@Z) non risolto nella funzione "public: float const __clrcall Project_Amaltea::DShoot::GetMissDistance(enum Project_Amaltea::DTargetType)" (?GetMissDistance@DShoot@Project_Amaltea@@$$FQAM?BMW4DTargetType@2@@Z)
Da quel che ho intuito il linker non riesce a trovare l'obj della funzione. Sapete spiegarmi perché?
Come posso risolvere il problema?
Grazie
ADL
Sto creando una applicazione WIN32 e ho realizzato la seguente libreria di funzioni, con la seguente dichiarazione:
#pragma once
//-------------------------------------------------------------------
namespace DLibrary{// Start namespace
//-------------------------------------------------------------------
const float GetPointDistance(const float x0,
const float y0,
const float x1,
const float y1);
//-------------------------------------------------------------------
} // End namespace
//-------------------------------------------------------------------
e definita nel modo seguente:
//-------------------------------------------------------------------
// Include
#include "StdAfx.h"
#include "DLibrary.h"
#include <math.h>
//-------------------------------------------------------------------
using namespace DLibrary;
//-------------------------------------------------------------------
const float GetPointDistance(const float x0,
const float y0,
const float x1,
const float y1)
{
float Distance;
Distance=sqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1));
return Distance;
}
//-------------------------------------------------------------------
Quando vado a utilizzare la funzione, in fase di compilazione va tutto bene. Il link invece mi segnala questo errore:
1>DShoot.obj : error LNK2028: al token non risolto (0A000008) "float const __clrcall DLibrary::GetPointDistance(float,float,float,float)" (?GetPointDistance@DLibrary@@$$FYM?BMMMMM@Z) si fa riferimento nella funzione "public: float const __clrcall Project_Amaltea::DShoot::GetMissDistance(enum Project_Amaltea::DTargetType)" (?GetMissDistance@DShoot@Project_Amaltea@@$$FQAM?BMW4DTargetType@2@@Z)
1>DShoot.obj : error LNK2019: riferimento al simbolo esterno "float const __clrcall DLibrary::GetPointDistance(float,float,float,float)" (?GetPointDistance@DLibrary@@$$FYM?BMMMMM@Z) non risolto nella funzione "public: float const __clrcall Project_Amaltea::DShoot::GetMissDistance(enum Project_Amaltea::DTargetType)" (?GetMissDistance@DShoot@Project_Amaltea@@$$FQAM?BMW4DTargetType@2@@Z)
Da quel che ho intuito il linker non riesce a trovare l'obj della funzione. Sapete spiegarmi perché?
Come posso risolvere il problema?
Grazie
ADL