PDA

View Full Version : Problema classi in C++


GiacTucc
31-08-2020, 21:33
Salve a tutti...
Sto affrontando le classi su C++, e mi ritrovo con questo errore...
C:\crossdev\src\mingw-w64-v3-git\mingw-w64-crt\crt\crt0_c.c
undefined reference to `WinMain'

Primo file .h:
#ifndef DATA_H_INCLUDED
#define DATA_H_INCLUDED
#include <string>

class Data
{
public:
Data(int gg, int mm, int aa);
std::string formato_breve();

private:
int giorno=1, mese=1, anno=1970;
};

#endif

Secondo file .cpp
#include "Classi-separare.h"

Data::Data(int gg, int mm, int aa)
{
if(gg>=1 && gg<=31)
giorno=gg;

if(mm>=1 && mm<=12)
mese=mm;

if(aa>=1970)
anno=aa;
}

std::string Data::formato_breve()
{
return std::to_string(giorno)+ "/" +std::to_string(mese)+ "/" +std::to_string(anno);
}

Terzo file .cpp
#include <iostream>
#include "Classi-separare.h"
using namespace std;


int main()
{
Data d(31,8,2020);
cout<<"Oggi e' il "<<d.formato_breve()<<endl;
return 0;
}

Sarà sicuramente qualche sciocchezza, ma ci sto sbattendo la testa da due giorni..
L'IDE è DEVC++ (sono a conoscenza del suo abbandono da anni, infatti ho provato su CodeBlocks, ma stesso errore!)
Ambiente windows 10.
:muro: :muro: :muro:

Lampo89
31-08-2020, 23:26
Il codice è corretto. Probabile che si tratti di un errore di setup del progetto devc++ - settato erroneamente come progetto Win32 o Windows Application.
Insomma, il linker fallisce perché non trova l'entry point della tua applicazione: il linker si aspetta WinMain, l'entry point di una applicazione Win32.
Modifica il progetto in qualcosa tipo "Console application" e dovresti risolvere.
O altrimenti sostituisci main() con WinMain

GiacTucc
01-09-2020, 12:17
Il codice è corretto. Probabile che si tratti di un errore di setup del progetto devc++ - settato erroneamente come progetto Win32 o Windows Application.
Insomma, il linker fallisce perché non trova l'entry point della tua applicazione: il linker si aspetta WinMain, l'entry point di una applicazione Win32.
Modifica il progetto in qualcosa tipo "Console application" e dovresti risolvere.
O altrimenti sostituisci main() con WinMain

Sì! Risolto, i tre file non facevano parte dello stesso progetto e quindi mi dava questo errore... A livello di codice non c'era nessun problema.
Grazie mille!