2010-09-22 64 views
0

當我的代碼調用某個功能,我得到一個錯誤,當鏈接錯誤:調用函數

H:\workspace\HW5\HW5\Manager.obj

Error 22 error LNK2019: unresolved external symbol "public: void __thiscall Shalishut::Task8_MoveVehicleFromBaseToBase(class Military *,char const *,char *,char *)" ([email protected]@@[email protected]@[email protected]) referenced in function "public: void __thiscall Manager::TaskExecute(class Task *,class Military *,class Shalishut *,char * * const)" ([email protected]@@[email protected]@[email protected]@[email protected]@[email protected]) H:\workspace\HW5\HW5\Manager.objH:\workspace\HW5\HW5\Manager.obj

和:

error LNK1120: 1 unresolved externals H:\workspace\HW5\Debug\HW5.exe

當我不調用該函數,一切正常,項目建成。

這裏是調用該函數的代碼:

shalishut->Task8_MoveVehicleFromBaseToBase(military,licenseId,campNameA,campNameB); 

和這裏的功能:

void Task8_MoveVehicleFromBaseToBase(Military* military,const char* licenseId,char* fromBase,char* toBase){ 
if (military->IsBaseExist(fromBase)){ 
    if(military->FindBase(fromBase)->IsVehicleExist(licenseId)){ 
    if (military->IsBaseExist(toBase)){ 
    if(military->GetCountry()->IsRoadExist(military->FindBase(fromBase)->GetCityName(),military->FindBase(toBase)->GetCityName())){ 
    military->FindBase(toBase)->AddVehicleToBase(military->FindBase(fromBase)->RemoveVehicleFromBase(licenseId)); 
    Time* time = Time::GetInstance(); 
    long double distance = military->GetCountry()->GetRoadDistance(military->FindBase(fromBase)->GetCityName(),military->FindBase(toBase)->GetCityName()); 
    Transport* transportToAdd = new Transport(time->GetTime(),(string)fromBase,(string)toBase,distance); 
    military->FindVehicle(licenseId)->AddTransport(transportToAdd); 
    } 
    } 
    } 
} 
} 
+0

需要更多數據。從語言/編譯器開始 – Tom 2010-09-22 17:19:07

+0

標記爲家庭作業。 – CookieOfFortune 2010-09-22 17:19:44

回答

0

我相信函數的聲明必須是:

void Shalishut::Task8_MoveVehicleFromBaseToBase(Military* military,const char* licenseId,char* fromBase,char* toBase) { 
... 
} 

你沒我們不提供頭文件,所以我假設函數是shalishut類的成員。

+0

我對自己感到羞愧... – Aviadjo 2010-09-22 17:25:10