Erreurs C ++ LNK1120 et LNK2019: «symbole externe non résolu WinMain @ 16»

J’essaie de faire un autre exercice du livre de Deitel. Le programme calcule les intérêts mensuels et imprime les nouveaux soldes pour chacun des épargnants. Comme l’exercice fait partie du chapitre relatif à la mémoire dynamic, j’utilise les opérateurs “nouveau” et “supprimer”. Pour une raison quelconque, je reçois ces deux erreurs:

LNK2019: symbole externe non résolu WinMain @ 16 référencé dans la fonction ___tmainCRTStartup

erreur irrécupérable LNK1120: 1 externes non résolus

Voici le fichier d’en-tête de classe.

//SavingsAccount.h //Header file for class SavingsAccount class SavingsAccount { public: static double annualInterestRate; SavingsAccount(double amount=0);//default constructor intialize //to 0 if no argument double getBalance() const;//returns pointer to current balance double calculateMonthlyInterest(); static void modifyInterestRate(double interestRate): ~SavingsAccount();//destructor private: double *savingsBalance; }; 

Fichier Cpp avec les définitions des fonctions membres

 //SavingsAccount class defintion #include "SavingsAccount.h" double SavingsAccount::annualInterestRate=0;//define and intialize static data //member at file scope SavingsAccount::SavingsAccount(double amount) :savingsBalance(new double(amount))//intialize savingsBalance to point to new object {//empty body }//end of constructor double SavingsAccount::getBalance()const { return *savingsBalance; } double SavingsAccount::calculateMonthlyInterest() { double monthlyInterest=((*savingsBalance)*annualInterestRate)/12; *savingsBalance=*savingsBalance+monthlyInterest; return monthlyInterest; } void SavingsAccount::modifyInterestRate(double interestRate) { annualInterestRate=interestRate; } SavingsAccount::~SavingsAccount() { delete savingsBalance; }//end of destructor 

Terminez le programme pilote:

 #include  #include "SavingsAccount.h" using namespace std; int main() { SavingsAccount saver1(2000.0); SavingsAccount saver2(3000.0); SavingsAccount::modifyInterestRate(0.03);//set interest rate to 3% cout<<"Saver1 monthly interest: "<<saver1.calculateMonthlyInterest()<<endl; cout<<"Saver2 monthly interest: "<<saver2.calculateMonthlyInterest()<<endl; cout<<"Saver1 balance: "<<saver2.getBalance()<<endl; cout<<"Saver1 balance: "<<saver2.getBalance()<<endl; return 0; } 

J’ai passé une heure à essayer de comprendre cela sans succès.

Allez dans “Paramètres de l’éditeur de liens -> Système”. Changez le champ “Sous-système” de “Windows” en “Console”.

On dirait que vous écrivez une application console standard (vous avez int main() ), mais que l’éditeur de liens s’attend à trouver un point d’entrée Windows WinMain .

Dans les pages de propriétés de votre projet, dans la section Éditeur de liens, option Système / Sous-système, avez-vous sélectionné “Windows (/ SUBSYSTEM: WINDOWS)”? Si c’est le cas, essayez de le remplacer par “Console (/ SUBSYSTEM: CONSOLE)”.

Lors de la création d’un nouveau projet, sélectionnez “Application console Win32” au lieu de “Projet Win32”.