سؤال

عندما يتصل رمزتي بوظيفة معينة ، أحصل على خطأ:

H: Workspace HW5 HW5 Manager.Obj

خطأ 22 خطأ LNK2019: الرمز الخارجي لم يتم حله "الجمهور: void __thiscall shalishut :: task8_movevehiclefrombasetoBase (class militar "عام: void __thiscall Manager :: taskexecute (مهمة الفصل *، الطبقة العسكرية *، الطبقة shalishut *، char * *const)" (؟ workspace hw5 hw5 manager.objh: workspace hw5 hw5 manager.obj

و:

خطأ LNK1120: 1 خارجي لم يتم حله 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);
    }
   }
  }
 }
}
هل كانت مفيدة؟

المحلول

أعتقد أن إعلان الوظيفة يجب أن يكون:

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

أنت لم تقدم لنا حقًا ملفات الرأس ، لذا أفترض أن هذه الوظيفة هي عضو في فئة Shalishut.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top